user5394025 (Your real name?),
First off, to find out the distance between the two execute the sdo_distance function with the recommended geodetic tolerance value of 0.05m.
SELECT
SDO_GEOM.SDO_DISTANCE(
SDO_GEOMETRY(2001, 8265, SDO_POINT_TYPE(-50, 48, NULL), NULL, NULL),
SDO_GEOMETRY(2001, 8265, SDO_POINT_TYPE(-49.998, 48, NULL), NULL, NULL),
0.05) as distance
FROM dual;
-- Result
--
DISTANCE
--------
149.250705285824
So, 149.25 meter is the actual distance between your two geometries.
Your tolerances look like you are checking distances rather than stating the precision of the data as a distance between any two vertices for those vertices to be the same.
So, while one cannot be sure exactly how SDO_DISTANCE will perform using tolerance values as actual distances appears to be
collapsing the distance between the two geometries (or two vertices on those objects) such that it becomes so close to the actual tolerance that the objects are
snapped together.
To see this rough effect check this:
SELECT 90+(level*10) as tolerance,
SDO_GEOM.SDO_DISTANCE(
SDO_GEOMETRY(2001, 8265, SDO_POINT_TYPE(-50, 48, NULL), NULL, NULL),
SDO_GEOMETRY(2001, 8265, SDO_POINT_TYPE(-49.998, 48, NULL), NULL, NULL),
90+(level*10)) as distance
FROM dual
CONNECT BY LEVEL < 6;
-- Results
--
TOLERANCE DISTANCE
--------- --------
100 149.250705285824
110 149.250705285824
120 0
130 0
140 0
SDO_DISTANCE calculates a distance between two objects. They can only be a certain distance apart so as long as the tolerance doesn't "collapse" the two geometries together, that distance will always remain the same regardless as to tolerance.
Don't mix tolerances and distances.
regards
Simon