sql >> Database teknologi >  >> RDS >> Oracle

Anonym TABLE- eller VARRAY-type i Oracle

Forudsat at du ikke er bange for eksplicit at henvise til SYS-skemaet, er der nogle få. Her er nogle jeg bruger ret ofte (godt odcivarchar2list ikke så meget, da det tygger meget hukommelse op:for strenge foretrækker jeg 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 hvis disse ikke er tilstrækkelige til dine behov, kør denne forespørgsel for at finde nogle flere:

select type_name
       , owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/

Dette resultat vil naturligvis variere fra database til database. For eksempel er mange af samlingerne på min database ejet af XDB, og ikke alle systemer vil have det installeret. De fire jeg anførte øverst i dette svar burde være tilgængelige på alle databaser siden 9iR2 (og måske tidligt), selvom de ikke altid er dokumenteret i tidligere versioner.

"Bemærk, at ALL_COLL_TYPES ser ud til at være en endnu bedre ordbogsvisning til at finde passende typer"

Det er en god pointe. Vi kan også filtrere på COLL_TYPE for at vinde ud af VARRAY'erne. Denne visning blev introduceret i 10g, mens ALL_TYPES var tilgængelig på 9i. Som med de fleste ting Oracle, jo senere version, jo mere funktionalitet har den.



  1. Få adgang til fejlnummermeddelelsesopslag

  2. Operatorer til udpakning af JSON-underkomponenter

  3. Er det muligt at oprette Oracle Database-objekttyper inde i PL/SQL?

  4. Find en streng ved at søge i alle tabeller i SQL Server