Providing you’re not scared of explicitly referencing the SYS schema there are a few. Here are some I use quite often (well odcivarchar2list
not so much, as it chews up a lot of memory: for strings I prefer 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>
However, if those aren’t sufficient for your needs run this query to find some more:
select type_name
, owner
from all_types
where typecode="COLLECTION"
and owner != user
/
Of course, this result will vary from database to database. For instance a lot of the colllections on my database are owned by XDB and not every system will have that installed. The four I listed at the the top of this answer should be available on every database since 9iR2 (and perhaps early) although they are not always documented in earlier versions.
“Note that ALL_COLL_TYPES seems to be an even better dictionary view
to find appropriate types”
That’s a good point. We can also filter on COLL_TYPE to winnow out the VARRAYs. That view was introduced into 10g whereas ALL_TYPES was available on 9i. As with most things Oracle, the later the version the more functionality it has.