Het klinkt alsof u alle pakketten wilt kunnen weergeven die mogelijk een status hebben.
Wat u zoekt, zijn alleen pakketten met globale variabelen of constanten. Voor een enkel pakket is dit vrij eenvoudig door inspectie. Als u echter alle pakketten in een schema wilt bekijken, kunt u PL/Scope gebruiken:
Log eerst in als schema-eigenaar, schakel PL/Scope in uw sessie in:
alter session set plscope_settings='IDENTIFIERS:ALL';
Compileer vervolgens al uw pakketten opnieuw.
Voer vervolgens deze query uit om alle variabelen en constanten te vinden die op pakketniveau zijn gedeclareerd:
select object_name AS package,
type,
name AS variable_name
from user_identifiers
where object_type IN ('PACKAGE','PACKAGE BODY')
and usage = 'DECLARATION'
and type in ('VARIABLE','CONSTANT')
and usage_context_id in (
select usage_id
from user_identifiers
where type = 'PACKAGE'
);
Ik stel voor dat de resulterende lijst met pakketten uw doel is.
Als je 11gR2 gebruikt, veroorzaken constanten dit probleem niet meer, dus gebruik je in plaats daarvan deze zoekopdracht:
select object_name AS package,
type,
name AS variable_name
from user_identifiers
where object_type IN ('PACKAGE','PACKAGE BODY')
and usage = 'DECLARATION'
and type = 'VARIABLE'
and usage_context_id in (
select usage_id
from user_identifiers
where type = 'PACKAGE'
);