Pod warunkiem, że nie boisz się wyraźnie odwoływać się do schematu SYS, jest kilka. Oto kilka, których używam dość często (dobrze odcivarchar2list
nie tak bardzo, ponieważ pochłania dużo pamięci:dla ciągów wolę 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>
Jeśli jednak nie są one wystarczające dla Twoich potrzeb, uruchom to zapytanie, aby znaleźć więcej:
select type_name
, owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/
Oczywiście ten wynik będzie się różnić w zależności od bazy danych. Na przykład wiele kolekcji w mojej bazie danych należy do XDB i nie każdy system będzie miał to zainstalowane. Cztery, które wymieniłem na początku tej odpowiedzi, powinny być dostępne w każdej bazie danych od 9iR2 (i być może wcześnie), chociaż nie zawsze są one udokumentowane we wcześniejszych wersjach.
„Zauważ, że ALL_COLL_TYPES wydaje się być jeszcze lepszym widokiem słownika do wyszukiwania odpowiednich typów”
Trafne spostrzeżenie. Możemy również filtrować według COLL_TYPE, aby odfiltrować VARRAYs. Ten widok został wprowadzony do 10g, podczas gdy ALL_TYPES był dostępny w 9i. Podobnie jak w przypadku większości rzeczy Oracle, im nowsza wersja, tym większą ma funkcjonalność.