sql >> Database >  >> RDS >> Oracle

Informatie krijgen over alle soorten gegevens die in een bepaald pakket zijn gedeclareerd?

Gebruik PL/Scope ...

alter session set plscope_settings = 'IDENTIFIERS:ALL';

... en hercompileer het pakket (UTL_LOG in mijn geval) ...

alter package utl_log compile;
alter package utl_log compile body;

... en bevraag vervolgens de user_identifiers bekijk ...

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

... wat (in mijn geval) zou opleveren ...

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

Let op dat PL/Scope kan worden gebruikt voor elke identifier gedeclareerd/gedefinieerd in elke programma-eenheid, niet alleen voor gegevenstypeverklaringen.



  1. Hoe tel je in Redshift/Postgres rijen die aan een voorwaarde voldoen?

  2. Wat is de beste manier om de SQL Server-verbinding programmatisch te testen?

  3. orakel sql-verzameling

  4. Prestaties van de COUNT SQL-functie