2013-01-08 39 views
8

में पीएल/एसक्यूएल संग्रहीत फ़ंक्शन बॉडी को कैसे देखें Iracle डेटाबेस pAdCampaign.fGetAlgoGroupKey में संग्रहीत फ़ंक्शन है। इस फ़ंक्शन के कोड को कैसे देखें।ओरेकल

+1

"pAdCampaign" स्कीमा या एक पैकेज है? – DazzaL

+0

pAdCampaign पैकेज है। –

+0

संभावित डुप्लिकेट [.NET: ओरेकल 9आई पीएल/एसक्यूएल प्रक्रिया या फ़ंक्शन के शरीर को कैसे पुनर्प्राप्त करें] (http://stackoverflow.com/questions/554115/net-how-to-retrieve-the-body-of -an-oracle-9i-pl-sql-process-or-function) – APC

उत्तर

21

तो है एक पैकेज तो आप के साथ उस के लिए स्रोत प्राप्त कर सकते हैं:

select text from all_source where name = 'PADCAMPAIGN' 
and type = 'PACKAGE BODY' 
order by line; 

ओरेकल स्रोत को स्टोर नहीं करता है एक उप-कार्यक्रम अलग से, इसलिए आपको इसके लिए पैकेज स्रोत को देखने की आवश्यकता है।

नोट: मैं मान लिया गया है आप डबल उद्धरण का उपयोग नहीं किया है कि पैकेज बनाते समय है, लेकिन अगर तुमने किया था, उसके बाद का उपयोग

select text from all_source where name = "pAdCampaign' 
and type = 'PACKAGE BODY' 
order by line; 
+0

धन्यवाद डैज़ल। इसने काम कर दिया। –

+0

यदि आप ALL_SOURCE से चयन कर रहे हैं तो आपको WHERE क्लॉज में स्वामी शामिल करना चाहिए। एक फ़ंक्शन दिखाने के लिए – APC

+1

, 'टाइप'' का उपयोग करना चाहिए 'फ़ंक्शन' – StampyCode

5
SELECT text 
FROM all_source 
where name = 'FGETALGOGROUPKEY' 
order by line 
वैकल्पिक रूप से

:

select dbms_metadata.get_ddl('FUNCTION', 'FGETALGOGROUPKEY') 
from dual; 
+0

आप पहली बार क्वेरी का जवाब देते हैं कि यह त्रुटि दे रहा है ORA-00904: "PROCEDURENAME": अवैध पहचानकर्ता। –

+0

@VallabhPatade: मेरा संपादन देखें। –

+0

यह वापस लौट रहा है। लेकिन मुझे यकीन है कि यह कार्य वहां मौजूद है/मौजूद है। मैं इस फ़ंक्शन को जावा कोड से या SQL कोड से कॉल कर रहा हूं, यह अपेक्षित मान को वापस कर रहा है। –

0

तुम भी DBMS_METADATA उपयोग कर सकते हैं:

select dbms_metadata.get_ddl('FUNCTION', 'FGETALGOGROUPKEY', 'PADCAMPAIGN') 
from dual