Si vous n'avez pas peur de référencer explicitement le schéma SYS, il y en a quelques-uns. En voici quelques-uns que j'utilise assez souvent (enfin odcivarchar2list
pas tellement, car il consomme beaucoup de mémoire :pour les chaînes, je préfère 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>
Cependant, si ceux-ci ne suffisent pas à vos besoins, lancez cette requête pour en trouver d'autres :
select type_name
, owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/
Bien sûr, ce résultat variera d'une base de données à l'autre. Par exemple, un grand nombre des collections de ma base de données appartiennent à XDB et tous les systèmes ne l'auront pas installé. Les quatre que j'ai énumérés en haut de cette réponse devraient être disponibles sur chaque base de données depuis 9iR2 (et peut-être au début) bien qu'ils ne soient pas toujours documentés dans les versions antérieures.
"Notez que ALL_COLL_TYPES semble être une vue de dictionnaire encore meilleure pour trouver les types appropriés"
C'est un bon point. Nous pouvons également filtrer sur COLL_TYPE pour trier les VARRAY. Cette vue a été introduite dans 10g alors que ALL_TYPES était disponible sur 9i. Comme pour la plupart des choses Oracle, plus la version est récente, plus elle a de fonctionnalités.