By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TYPE my_sdo_geom_type AS OBJECT(
shape SDO_GEOMETRY,
MEMBER FUNCTION GetOrdinates(
self IN my_sdo_geom_type,
idx IN NUMBER
) RETURN NUMBER
)
/
CREATE TYPE BODY my_sdo_geom_type AS
MEMBER FUNCTION GetOrdinates(
self IN my_sdo_geom_type,
idx IN NUMBER
) RETURN NUMBER
IS
BEGIN
IF SIGN(idx) = 1 THEN
return shape.sdo_ordinates(idx);
ELSE
return null; --temporarily returns null
END IF;
END;
END;
/
create table lines (my_sdo_geom_col my_sdo_geom_type);
insert into lines (my_sdo_geom_col)
values (my_sdo_geom_type(sdo_geometry('linestring(10 20, 30 40, 50 60)')));
1 rows affected
select (my_sdo_geom_col).GetOrdinates( 1) as first_ordinate,
(my_sdo_geom_col).GetOrdinates(-1) as last_ordinate
from lines
FIRST_ORDINATE | LAST_ORDINATE |
---|---|
10 | null |