sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo contar la cantidad de elementos en todos los varrays de Oracle de la tabla?

Creo que puedes hacerlo con una consulta:

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

o puede escribir una función plsql simple que devuelva el atributo de conteo de SDO_ORDINATE_ARRAY VARRAY:

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

o incluso mejor, agregue una función miembro a SDO_GEOMETRY TYPE que devuelva el atributo de conteo