SYSスキーマを明示的に参照することを恐れていない場合は、いくつかあります。これが私がよく使うものです(odcivarchar2list
多くのメモリを消費するので、それほど多くはありません。文字列の場合、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>
ただし、これらがニーズに十分でない場合は、このクエリを実行してさらに検索してください:
select type_name
, owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/
もちろん、この結果はデータベースごとに異なります。たとえば、私のデータベースのコレクションの多くはXDBによって所有されており、すべてのシステムにXDBがインストールされているわけではありません。この回答の上部にリストした4つは、9iR2以降(およびおそらく初期)のすべてのデータベースで使用できるはずですが、以前のバージョンでは常に文書化されているわけではありません。
「ALL_COLL_TYPESは、適切なタイプを見つけるためのさらに優れた辞書ビューのようです」
それは良い点です。また、COLL_TYPEでフィルタリングして、VARRAYを選別することもできます。そのビューは10gに導入されましたが、ALL_TYPESは9iで使用可能でした。ほとんどのOracleと同様に、バージョンが遅いほど、より多くの機能があります。