下面介绍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脚本这样就实现了