Oracle
如何在 Oracle 中導出包含包和正文的包?
我正在使用膩子。如何在 Oracle 中使用 spool 將包及其正文導出到目前目錄中的文件?
謝謝
有兩種方法可以實現這一點
方式1:
SET HEAD OFF SET ECHO OFF SET FEED OFF SET TERM OFF SET LINE 1500 SET NEWPAGE NONE set pagesize 0 SPOOL C:\temp\FILE_NAME.SQL PROMPT CREATE OR REPLACE select trim(text) from user_source where name='PACKAGE_NAME' AND type='PACKAGE'; SPOOL OFF
方式二:
select dbms_metadata.get_ddl('PACKAGE','PACKAGE_NAME',USER) from dual;
@vercelli 建議的另一種方法是使用 Oracle
expdp
實用程序導出包及其主體。一個美妙的方法:)expdp scott/tiger@db10g schemas=SCOTT INCLUDE=PACKAGE LIKE 'PACKAGE_NAME' SQLFILE=scott.sql directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log
希望這可以幫助 !!
問候。
用於
SYS.DBMS_METADATA.GET_DDL
獲取CLOB
程式碼:declare myPackageSpec clob; myPackageBody clob; BEGIN select dbms_metadata.get_ddl('PACKAGE_BODY', 'PACKAGE_NAME', 'SCHEMA') into myPackageBody FROM DUAL; select dbms_metadata.get_ddl('PACKAGE_SPEC', 'PACKAGE_NAME', 'SCHEMA') into myPackageSpec FROM DUAL; dbms_output.put_line(myPackageSpec); dbms_output.put_line(myPackageBody); end;
您也可以
expdp
從命令行使用,然後impdp
使用sqlfileexpdp scott/tiger@db10g schemas=SCOTT INCLUDE=PACKAGE SQLFILE=scott.sql directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log impdp scott/tiger@db10g SQLFILE=scott.sql directory=TEST_DIR dumpfile=SCOTT.dmp logfile=impdpSCOTT.log