下面介紹Oracle導出SQL腳本的實現方法本方法使用spool
a 獲取單個的建表和建索引的語法
set heading off;
set echo off;
Set pages ;
set long ;
spool DEPTsql
select dbms_metadataget_ddl(TABLEDEPTSCOTT) from dual;
select dbms_metadataget_ddl(INDEXDEPT_IDXSCOTT) from dual;
spool off;
b獲取一個SCHEMA下的所有建表和建索引的語法以scott為例
set pagesize
set long
set feedback off
set echo off
spool scott_schemasql
nnect scott/tiger;
SELECT DBMS_METADATAGET_DDL(TABLEutable_name)
FROM USER_TABLES u;
SELECT DBMS_METADATAGET_DDL(INDEXuindex_name)
FROM USER_INDEXES u;
spool off;
c 獲取某個SCHEMA的建全部存儲過程的語法
nnect brucelau /brucelau;
spool proceduressql
select
DBMS_METADATAGET_DDL(PROCEDUREuobject_name)
from
user_objects u
where
object_type = PROCEDURE;
spool off;
另
dbms_metadataget_ddl(TABLETABUSER)
三個參數中第一個指定導出DDL定義的對象類型(此例中為表類型)第二個是對象名(此例中即表名)第三個是對象所在的用戶名
要自己寫程序進行Oracle導出SQL腳本執行一段SQL讓SQL查詢結果就是我們想要的SQL腳本
如下
select
INSERT INTO B_STATTEMPLATE ( N_IDC_NAME C_KBH N_PRINT N_TYPE N_APP N_VALID )
|| Values ( || To_Char(N_ID) || || C_NAME || || C_KBH ||
|| To_Char( N_PRINT ) || || To_Char( N_TYPE ) || || );
from b_stattemplate
將查詢結果保存起來就可以了!
Oracle導出SQL腳本這樣就實現了
From:http://tw.wingwit.com/Article/program/Oracle/201311/17607.html