Oracle导出SQL脚本的spool实现

数据库 Oracle
庞大的数据库有时复制起来成本比较大,而比较容易的解决方法就是导出SQL脚本。本文介绍Oracle导出SQL脚本的spool实现方法。

下面介绍Oracle导出SQL脚本的实现方法。本方法使用spool。

a. 获取单个的建表和建索引的语法

  1. set heading off;   
  2. set echo off;   
  3. Set pages 999;   
  4. set long 90000;   
  5.      
  6. spool DEPT.sql   
  7. select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT'from dual;    
  8. select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT'from dual;   
  9. spool off;   
  10.     

b.获取一个SCHEMA下的所有建表和建索引的语法,以scott为例:

  1. set pagesize 0   
  2. set long 90000   
  3.     
  4. set feedback off   
  5.     
  6. set echo off    
  7. spool scott_schema.sql    
  8. connect scott/tiger;   
  9. SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)   
  10.       FROM USER_TABLES u;   
  11. SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)   
  12.       FROM USER_INDEXES u;   
  13. spool off;   
  14.      

c.    获取某个SCHEMA的建全部存储过程的语法 

  1. connect brucelau /brucelau;   
  2.     
  3. spool procedures.sql   
  4.     
  5. select   
  6.     DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)   
  7. from   
  8.     user_objects u   
  9.     
  10. where   
  11.     object_type = 'PROCEDURE';   
  12.     
  13. spool off;   
  14.     

另:

  1. dbms_metadata.get_ddl('TABLE','TAB1','USER1')   

三个参数中,***个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。

要自己写程序进行Oracle导出SQL脚本,执行一段SQL,让SQL查询结果就是我们想要的SQL脚本:

如下:

  1. select   
  2.          'INSERT INTO B_STATTEMPLATE ( N_ID,C_NAME, C_KBH, N_PRINT, N_TYPE, N_APP, N_VALID ) ' 
  3.          || 'Values (' || To_Char(N_ID) ||',''' || C_NAME || ''', ''' || C_KBH || ''', '   
  4.          || To_Char( N_PRINT ) || ', ' || To_Char( N_TYPE ) || ', ' || '0, 0 );' 
  5.  from b_stattemplate  
  6.  

将查询结果保存起来就可以了!

Oracle导出SQL脚本这样就实现了。

【编辑推荐】

  1. 三分钟搞定oracle用户表空间
  2. 浅述Oracle用户表空间关系
  3. Oracle用户管理常用操作参考手册
  4. 老鸟谈Oracle用户表空间
  5. Oracle创建管理员步骤概述
责任编辑:yangsai 来源: 网络转载
相关推荐

2009-04-21 11:23:56

Oraclespool比较

2009-11-05 18:07:33

Oracle导出sql

2011-08-16 10:56:01

SQLPLUS学习笔记ECHO

2010-07-23 09:25:50

SQL Server导

2011-08-17 09:48:30

Python模拟OraPLUS工具

2010-05-27 09:50:18

MySQL导入sql脚

2010-11-04 13:55:26

DB2 SQL脚本批量

2011-07-14 08:56:34

Sql Server

2010-11-18 17:08:44

Oracle使用SQL

2010-10-28 11:55:47

oracle数据导出

2011-04-13 10:09:50

Oracle数据泵导入导出

2010-11-01 17:24:30

DB2批量执行

2010-04-02 13:46:30

Oracle数据导出

2009-11-23 10:24:22

2011-04-15 10:37:53

Oracle导入导出语法

2010-11-15 11:21:31

Oracle启动脚本

2010-04-08 09:27:44

Oracle 安装脚本

2010-11-04 13:14:16

DB2执行SQL语句

2010-05-05 14:27:34

Oracle SQL语

2010-04-22 10:16:43

点赞
收藏

51CTO技术栈公众号