欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle生成insert语句的存储过程如何写

更新时间: 2014-01-05 02:10:38 责任编辑: Author_N1

 

oracle生成insert语句的存储过程怎么写
oracle表创建存储过程生成insert语句保存到文件中,求教这个存储过程要怎么写?

就是对一张表创建一个存储过程 ,能生成出insert插入语句的,并且执行这个存储就可以保存结果到一个文件中。以便我将数据插入到一个sql server中。

表的数据量还是比较大的,有几百万条。所以想到有存储过程先把数据拿出来。

表字段有二三十个,表名:JZ31.TCL_CUSTBASEINFO

简单点就好,没有复杂的判断。。

由于个人对存储过程不太了解,看了许多例子都比较复杂,写不出来自己想要的,求教各位达人了
--参考方法--
引用:
Quote: 引用:

 用PL/SQL 工具生成脚本不就得了吗?  还需要用存储过程么。。。


不能用工具的,我这是一个工程定时取数据的。每周都需要取一次数据


我没想到什么好方法,只想到了用utl_file 写入文件。。。。效率可能不怎么好。
create or replace directory DIR_TEST as 'D:\';
create table c(c1 varchar2(10),c2 date,c3 number);
insert into c values('a',sysdate,1);
insert into c values('b',sysdate-1,11);
insert into c values('c',sysdate-2,111);
insert into c values('d',sysdate-3,1111);
insert into c values('e',sysdate-4,11111);
commit;

declare
  v        varchar2(1000);
  v1       varchar2(100);
  v2       varchar2(100);
  out_file utl_file.file_type; --定义一个文件类型
begin

  out_file := utl_file.fopen('DIR_TEST', 'insert.sql', 'W');

  --输出insert脚本到文件
  for w in (select * from c) loop
    --处理字符型
    v1 := '''' 
--参考方法--
 w.c1 
--参考方法--
 '''';
    --处理日期型
    v2 := 'to_date(''' 
--参考方法--
 to_char(w.c2, 'yyyymmdd hh24:mi:ss') 
--参考方法--

          ''',''yyyymmdd hh24:mi:ss'')';
    v  := 'insert into c values(' 
--参考方法--
 v1 
--参考方法--
 ',' 
--参考方法--
 v2 
--参考方法--
 ',' 
--参考方法--
 w.c3 
--参考方法--
 ');';
    utl_file.put_line(out_file, v);
  end loop;

  --关闭文件流
  utl_file.fflush(out_file);
  utl_file.fclose(out_file);
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:38
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6556/
本文WWW.DOC100.NET DOC100.NET版权所有。