У Oracle есть два способа хранения точечной геометрии
Первый находится в части sdo_point sdo_geometry.
sdo_geometry (2001, null, sdo_point (x, y, null), null, null)
Другой является ординатой в массиве ординат:
sdo_geometry (2001, null, null, sdo_elem_info_array (1,1,1), sdo_ordinate_array (x, y))
В этом случае sdo_intersection возвращает геометрию с координатами в массиве ординат.Вы должны получить значения оттуда.
Пример:
declare
l_geo1 sdo_geometry := sdo_geometry(2001
,null
,null
,sdo_elem_info_array(1, 2, 1)
,sdo_ordinate_array(0, 0, 10, 10));
l_geo2 sdo_geometry := sdo_geometry(2001
,null
,null
,sdo_elem_info_array(1, 2, 1)
,sdo_ordinate_array(0, 10, 10, 0));
l_geo3 sdo_geometry;
l_x number;
l_y number;
begin
l_geo3 := sdo_geom.sdo_intersection(l_geo1, l_geo2, 0.05);
l_x := l_geo3.sdo_ordinates(1);
l_y := l_geo3.sdo_ordinates(2);
dbms_output.put_line(l_x || ' ' || l_y);
end;