Zní to, jako byste chtěli mít možnost vypsat všechny balíčky, které mohou mít potenciál.
To, co hledáte, jsou pouze balíčky, které mají nějaké globální proměnné nebo konstanty. U jednoho balení je to při kontrole docela jednoduché. Chcete-li se však podívat na všechny balíčky ve schématu, můžete použít PL/Scope:
Nejprve se přihlaste jako vlastník schématu a ve své relaci zapněte PL/Scope:
alter session set plscope_settings='IDENTIFIERS:ALL';
Poté znovu zkompilujte všechna těla balíčků.
Poté spusťte tento dotaz a vyhledejte všechny proměnné a konstanty deklarované na úrovni balíčku:
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'
);
Navrhoval bych, aby výsledný seznam balíčků byl vaším cílem.
Pokud používáte 11gR2, konstanty již tento problém nezpůsobují, takže byste místo toho použili tento dotaz:
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'
);