2009-12-11 11 views
8

में फ़ंक्शन या प्रक्रिया के शरीर को डंप करें, ऑर्कल डेटाबेस से कनेक्ट करने के लिए sqlplus का उपयोग करते समय मैं फ़ंक्शन या प्रक्रिया के शरीर को कैसे हटा सकता हूं?sqlplus

उत्तर

7
select 
    text 
from 
    user_source 
where 
    type = 'PROCEDURE' 
and 
    name='YOURPROCEDURENAME' 
order by 
    line; 
+0

इसी तरह टाइप = 'फ़ंक्शन' और नाम = 'YOURFUNCTIONNAME'। – dacracot

+0

हमारे पास कई अलग-अलग स्कीमा सेट हैं। क्या मैं उनसे निपटने के लिए कुछ खास कर सकता हूं? –

+0

आप या तो विशिष्ट स्कीमा में लॉग इन कर सकते हैं, और user_source में केवल उस स्कीमा का स्रोत होगा। या आप एक डीबीए के रूप में लॉग इन कर सकते हैं और dba_source तालिका में एक स्वामी कॉलम भी होगा जिसमें आप अपनी सीमा में निर्दिष्ट कर सकते हैं कि आप किस स्कीमा में रुचि रखते हैं। – dacracot

5

उपयोग:

SELECT us.name, 
     us.type, 
     us.text 
    FROM USER_SOURCE us 
WHERE us.type IN ('PROCEDURE', 'FUNCTION') 
ORDER BY name, line 
3

एक अन्य समाधान dbms_metadata एपीआई

set line 200 
set long 10000 
select dbms_metadata.ddl('PACKAGE','Package Name') from dual; 

आप टेबल, अनुक्रमित और बाधाओं सहित सभी मेटाडाटा के लिए इसका उपयोग कर सकते उपयोग करने के लिए है

+0

उपरोक्त क्योंकि अन्य तंत्रों के लिए उन 'सेट लाइन/सेट लांग' की आवश्यकता होगी, साथ ही मुझे लगता है। – monojohnny

+0

@monojohnny, * अन्य तंत्र * के लिए 'लंबे समय तक सेट' की आवश्यकता नहीं है। अभी भी +1, dbms_metadata * है * जाने का तरीका है, imho। –

संबंधित मुद्दे