Wygląda na to, że chcesz wyświetlić listę wszystkich pakietów, które potencjalnie mogą mieć stan.
To, czego szukasz, to tylko pakiety, które mają dowolne zmienne globalne lub stałe. W przypadku pojedynczej paczki jest to dość proste po sprawdzeniu. Aby przejrzeć wszystkie pakiety w schemacie, możesz użyć PL/Scope:
Najpierw zaloguj się jako właściciel schematu, włącz PL/Scope w swojej sesji:
alter session set plscope_settings='IDENTIFIERS:ALL';
Następnie ponownie skompiluj wszystkie swoje pakiety.
Następnie uruchom to zapytanie, aby znaleźć wszystkie zmienne i stałe zadeklarowane na poziomie pakietu:
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'
);
Sugeruję, że otrzymana lista pakietów będzie Twoim celem.
Jeśli korzystasz z 11gR2, stałe nie powodują już tego problemu, więc zamiast tego użyjesz tego zapytania:
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'
);