Oracle
 sql >> база данни >  >> RDS >> Oracle

Анонимен тип TABLE или VARRAY в Oracle

При условие, че не се страхувате от изрично позоваване на SYS схемата, има няколко. Ето някои, които използвам доста често (добре odcivarchar2list не толкова, тъй като дъвче много памет:за низове предпочитам 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> 

Въпреки това, ако те не са достатъчни за вашите нужди, изпълнете тази заявка, за да намерите още:

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

Разбира се, този резултат ще варира от база данни до база данни. Например много от колекциите в моята база данни са собственост на XDB и не всяка система ще има инсталирана такава. Четирите, които изброих в горната част на този отговор, трябва да са налични във всяка база данни след 9iR2 (и може би в началото), въпреки че не винаги са документирани в по-ранни версии.

„Обърнете внимание, че ALL_COLL_TYPES изглежда е още по-добър изглед на речник, за да намерите подходящи типове“

Това е добра точка. Можем също да филтрираме по COLL_TYPE, за да извадим VARRAY. Този изглед беше въведен в 10g, докато ALL_TYPES беше наличен на 9i. Както при повечето неща на Oracle, колкото по-нова е версията, толкова повече функционалност има.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle :изберете максимална стойност от различни колони на същия ред

  2. CASE .. WHEN израз в Oracle SQL

  3. Динамично завъртане на редове в колони в Oracle

  4. java - преминаващ масив в съхранената процедура на Oracle

  5. NLS_LANG настройка за JDBC тънък драйвер?