ऐसा लगता है कि आप जो चाहते हैं वह उन सभी पैकेजों को सूचीबद्ध करने में सक्षम होना है जिनमें संभावित रूप से राज्य हो सकता है।
आप जो खोज रहे हैं वह केवल ऐसे पैकेज हैं जिनमें कोई वैश्विक चर या स्थिरांक है। एकल पैकेज के लिए, यह निरीक्षण द्वारा काफी सरल है। हालांकि, सभी पैकेजों को एक स्कीमा में देखने के लिए, आप PL/स्कोप का उपयोग कर सकते हैं:
सबसे पहले, स्कीमा स्वामी के रूप में लॉग इन करें, अपने सत्र में 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'
);