sql >> Databasteknik >  >> RDS >> Oracle

Anonym TABLE- eller VARRAY-typ i Oracle

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.



  1. Välj alla månader inom ett visst datumintervall, inklusive de med 0-värden

  2. Hur man förstår SQL Server Geografi Data Type

  3. PostgreSQL multi INSERT...RETURNERAR med flera kolumner

  4. En guide till MySQL Galera Cluster Streaming Replication:Del ett