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

Sådan får du information om alle typer data deklareret i en given pakke

Brug PL/Scope ...

alter session set plscope_settings = 'IDENTIFIERS:ALL';

... og kompiler pakken igen (UTL_LOG i mit tilfælde) ...

alter package utl_log compile;
alter package utl_log compile body;

... og forespørg derefter user_identifiers se ...

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

... hvilket ville (i mit tilfælde) give ...

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

Bemærk venligst at PL/Scope kan bruges til enhver identifikator erklæret/defineret i enhver programenhed, ikke kun til datatypedeklarationer.



  1. MYSQL-forespørgsel til at søge gennem ALLE felterne?

  2. Skal trimme blank plads i oracle

  3. Lagring af indholdet af et PHP-array i en MySQL-database

  4. Rækker til kolonne i ORACLE