Ik denk dat je het met één vraag kunt doen:
select s.id, count(*)
from spatial_data s, table(s.geometry.sdo_ordinates)
group by s.id
of je kunt een eenvoudige plsql-functie schrijven die het count-attribuut van de SDO_ORDINATE_ARRAY VARRAY retourneert:
create or replace function get_count(ar in SDO_ORDINATE_ARRAY) return number is
begin
return ar.count;
end get_count;
of nog leuker, voeg een lidfunctie toe aan SDO_GEOMETRY TYPE die het count-attribuut retourneert