oracle中将查出来的数据转化为insert into语句

前言:

最近造数据,迁移至不同测试环境。由于没有建立dblink的权限,所以想将查询出的语句直接转化成insert into语句。

步骤一:

将查询语句输出形式经行修改:

例如:

SELECT 'Insert into emp1 (DEPTNO,COMM,SAL,HIREDATE,MGR,JOB,ENAME,EMPNO) ' ||
       'Values(' || '''' || DEPTNO || '''' || ',''' || COMM || '''' ||
       ',''' || SAL || '''' || ',''' || HIREDATE || '''' || ',''' || MGR || '''' ||
       ',''' || JOB || '''' || ',''' || ENAME || '''' || ',''' || EMPNO || '''' || ');'
  FROM EMP1;

查询效果如下:

 oracle中将查出来的数据转化为insert into语句_第1张图片

主要:分成几部分

Select 'Insert into floating_population_lease_info (

) ' || 'Values('||''''||

||''''|| ',''' ||

|| ''''||');'
 
 
步骤二:

将查询出来的语句进行保存:

本来想使用dbms_file的但是依然是没有权限,所以使用了spool命令(保存命令窗口中的日志)算是一种曲线救国的方式吧!

格式类似于:

   set trimspool on
  set linesize 120
  set pagesize 2000
  set newpage 1
  set heading off
  set term off
  spool 路径+文件名
  select col1||','||col2||','||col3||','||col4||'..' from tablename;
  spool off

其中涉及到输出格式的设置

spool详情参阅:

鸣谢:http://wallimn.iteye.com/blog/472182

 

备注:

1.脚本一定要在命令窗口下执行

2.在命令串口下执行,在每个表结束时会产生"**** rows selected"的语句,此句话会影响下一步在插入数据。所以在开头设置打印格式时添加

feedback off命令,来取消。

3.后来将其写成java程序,用到jdbc相关技术

详情:

http://www.cnblogs.com/bluedream2009/archive/2009/10/21/1587206.html

你可能感兴趣的:(oracle,数据,insert,into,spool)