用sql語句導出oracle中的存儲過程和函數


用sql語句導出oracle中的存儲過程和函數:

SET echo off ;
SET heading   off ;
SET feedback   off ;
SPOOL 'C:/PRC.SQL' replace
SELECT CASE
         WHEN LINE = 1 THEN
          'CREATE OR REPLACE ' || TEXT
         WHEN LINE = MAX_LINE THEN
          TEXT || CHR(10 ) || '/'
         ELSE
          TEXT
       END
  FROM USER_SOURCE A
  LEFT JOIN (SELECT A.NAME,A.TYPE, MAX(LINE) MAX_LINE
               FROM USER_SOURCE A
              WHERE TYPE in ( 'PROCEDURE', 'PACKAGE' ,'PACKAGE BODY' )
              GROUP BY A.NAME,A.TYPE ) B ON A.NAME||A.TYPE = B.NAME||B.TYPE
 WHERE A.TYPE in ('PROCEDURE' ,'FUNCTION', 'PACKAGE', 'PACKAGE BODY' ) AND A.NAME IN
 (
SELECT name FROM ALL_SOURCE  
    WHERE (TYPE='PROCEDURE' or type='FUNCTION')
    AND OWNER='你的應用實例' 
        GROUP BY name
)
ORDER BY a.NAME||a.TYPE , LINE;
SPOOL OFF

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM