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

Как да получите информация за всички видове данни, декларирани в даден пакет

Използвайте PL/Scope ...

alter session set plscope_settings = 'IDENTIFIERS:ALL';

... и прекомпилирайте пакета (UTL_LOG в моя случай) ...

alter package utl_log compile;
alter package utl_log compile body;

... и след това потърсете user_identifiers изглед...

select name, type, object_name, object_type, line, col
from user_identifiers
where object_name = 'UTL_LOG'
    and usage = 'DECLARATION'
    and type not in ('VARIABLE','FUNCTION','FORMAL IN','FORMAL OUT','CONSTANT','PROCEDURE','FUNCTION','PACKAGE')
;

... което (в моя случай) би довело до ...

NAME                TYPE    OBJECT_ OBJECT_ LINE COL
------------------- ------- ------- ------- ---- ---
ARR_SOME_COLLECTION VARRAY  UTL_LOG PACKAGE   19   6
REC_SOME_RECORD     RECORD  UTL_LOG PACKAGE   15   6
TYP_LOG_CODE        SUBTYPE UTL_LOG PACKAGE    8   9

Моля, обърнете внимание че PL/Scope може да се използва за всяко идентификатор, деклариран/дефиниран във всеки програмна единица, не само за декларации на типове данни.



  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. Какво е точното значение на наличието на условие като where 0=0?

  3. оракул | изтриване на дублиращи се записи

  4. Променлива на динамична схема на Oracle SQL оператор

  5. Защо клаузата на oracle IN има ограничение от 1000 само за статични данни?