Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak uzyskać informacje o wszystkich typach danych zadeklarowanych w danym pakiecie?

Użyj PL/zakresu ...

alter session set plscope_settings = 'IDENTIFIERS:ALL';

... i ponownie skompiluj pakiet (UTL_LOG w moim przypadku) ...

alter package utl_log compile;
alter package utl_log compile body;

... a następnie zapytaj o user_identifiers zobacz ...

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')
;

... co (w moim przypadku) dałoby ...

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

Uwaga że PL/Scope może być użyty dla dowolnego identyfikator zadeklarowany/zdefiniowany w dowolny jednostka programowa, nie tylko dla deklaracji typu danych.



  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 SQL SELECT DATE z pola DATETIME

  2. jak napisać zapytanie sql, aby wybrać wiersze z maksymalną wartością w jednej kolumnie

  3. Unikaj wstawiania wartości wykładniczej w kolumnie DB Float

  4. Java — znajdź pierwszą przyczynę wyjątku

  5. Szaleństwo wersji sterownika Oracle jdbc