Изглежда, че това, което искате, е да можете да изброите всички пакети, които потенциално могат да имат състояние.
Това, което търсите, са само пакети, които имат глобални променливи или константи. За един пакет това е доста лесно чрез проверка. За да разгледате всички пакети в схема обаче, можете да използвате PL/Scope:
Първо влезте като собственик на схемата, включете PL/Scope във вашата сесия:
alter session set plscope_settings='IDENTIFIERS:ALL';
След това прекомпилирайте всичките си тела на пакети.
След това изпълнете тази заявка, за да намерите всички променливи и константи, декларирани на ниво пакет:
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'
);
Предполагам, че полученият списък с пакети ще бъде вашата цел.
Ако сте на 11gR2, константите вече не причиняват този проблем, така че вместо това бихте използвали тази заявка:
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'
);