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

Tipo TABLE o VARRAY anónimo en Oracle

Siempre que no tenga miedo de hacer referencia explícita al esquema SYS, hay algunos. Aquí hay algunos que uso con bastante frecuencia (bueno, odcivarchar2list no tanto, ya que consume mucha memoria:para cadenas prefiero dbms_debug_vc2coll ).

SQL> desc sys.odcinumberlist
 sys.odcinumberlist VARRAY(32767) OF NUMBER

SQL> desc sys.odcivarchar2list
 sys.odcivarchar2list VARRAY(32767) OF VARCHAR2(4000)

SQL> desc sys.ODCIDATELIST
 sys.ODCIDATELIST VARRAY(32767) OF DATE

SQL> desc sys.dbms_debug_vc2coll
 sys.dbms_debug_vc2coll TABLE OF VARCHAR2(1000)

SQL> 

Sin embargo, si no son suficientes para sus necesidades, ejecute esta consulta para encontrar más:

select type_name
       , owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/

Por supuesto, este resultado variará de una base de datos a otra. Por ejemplo, muchas de las colecciones en mi base de datos son propiedad de XDB y no todos los sistemas tendrán eso instalado. Los cuatro que enumeré en la parte superior de esta respuesta deberían estar disponibles en todas las bases de datos desde 9iR2 (y quizás desde antes), aunque no siempre están documentados en versiones anteriores.

"Tenga en cuenta que ALL_COLL_TYPES parece ser una mejor vista de diccionario para encontrar los tipos apropiados"

Ese es un buen punto. También podemos filtrar en COLL_TYPE para filtrar los VARRAY. Esa vista se introdujo en 10g mientras que ALL_TYPES estaba disponible en 9i. Como con la mayoría de las cosas de Oracle, cuanto más reciente sea la versión, más funcionalidad tiene.