Förutsatt att du inte är rädd för att uttryckligen referera till SYS-schemat finns det några. Här är några jag använder ganska ofta (tja odcivarchar2list
inte så mycket, eftersom det tuggar upp mycket minne:för strängar föredrar jag 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>
Men om dessa inte är tillräckliga för dina behov, kör den här frågan för att hitta fler:
select type_name
, owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/
Naturligtvis kommer detta resultat att variera från databas till databas. Till exempel ägs många av samlingarna i min databas av XDB och inte alla system kommer att ha det installerat. De fyra jag listade överst i det här svaret borde vara tillgängliga på alla databaser sedan 9iR2 (och kanske tidigt) även om de inte alltid är dokumenterade i tidigare versioner.
"Observera att ALL_COLL_TYPES verkar vara en ännu bättre ordboksvy för att hitta lämpliga typer"
Det är en bra poäng. Vi kan också filtrera på COLL_TYPE för att vinna ut VARRAY. Den vyn introducerades i 10g medan ALL_TYPES var tillgänglig på 9i. Som med det mesta Oracle, ju senare version desto mer funktionalitet har den.