Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie zähle ich die Anzahl der Elemente in allen Oracle-Varrays aus der Tabelle?

Ich denke, dass Sie es mit einer Abfrage tun können:

select s.id, count(*)
  from spatial_data s, table(s.geometry.sdo_ordinates)
 group by s.id

oder Sie können eine einfache plsql-Funktion schreiben, die das count-Attribut des SDO_ORDINATE_ARRAY VARRAY zurückgibt:

create or replace function get_count(ar in SDO_ORDINATE_ARRAY) return number is
begin
   return ar.count;
end get_count;

oder noch schöner, fügen Sie SDO_GEOMETRY TYPE eine Member-Funktion hinzu, die das count-Attribut

zurückgibt