oracle生成insert语句的存储过程怎么写

chenhong90 2013-06-04 03:17:54
oracle表创建存储过程生成insert语句保存到文件中,求教这个存储过程要怎么写?

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

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

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

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

由于个人对存储过程不太了解,看了许多例子都比较复杂,写不出来自己想要的,求教各位达人了
...全文
712 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhong90 2013-06-24
  • 打赏
  • 举报
回复
引用 5 楼 forgetsam 的回复:
Oracle创建一个dblink连到SQLServer,直接调任务。 数据量大直接分析两边的二进制导出方式,本来就是一个数据的迁移,1条select加n条sql解析,非常蠢。
oracle数据库我操作不了。 不过现在问题解决了。用程序跑批解决了,虽然比较麻烦。
opps_zhou 2013-06-05
  • 打赏
  • 举报
回复
+1,很简单的数据同步问题
引用 5 楼 forgetsam 的回复:
Oracle创建一个dblink连到SQLServer,直接调任务。 数据量大直接分析两边的二进制导出方式,本来就是一个数据的迁移,1条select加n条sql解析,非常蠢。
forgetsam 2013-06-05
  • 打赏
  • 举报
回复
Oracle创建一个dblink连到SQLServer,直接调任务。 数据量大直接分析两边的二进制导出方式,本来就是一个数据的迁移,1条select加n条sql解析,非常蠢。
u010412956 2013-06-05
  • 打赏
  • 举报
回复
引用 3 楼 chenhong90 的回复:
[quote=引用 2 楼 u010412956 的回复:] 用PL/SQL 工具生成脚本不就得了吗? 还需要用存储过程么。。。
不能用工具的,我这是一个工程定时取数据的。每周都需要取一次数据[/quote] 我没想到什么好方法,只想到了用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);
end;
sdfsf双方各 2013-06-05
  • 打赏
  • 举报
回复
你写好了没,没写好我帮你写了,新人哈哈
chenhong90 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 u010412956 的回复:
用PL/SQL 工具生成脚本不就得了吗? 还需要用存储过程么。。。
不能用工具的,我这是一个工程定时取数据的。每周都需要取一次数据
u010412956 2013-06-04
  • 打赏
  • 举报
回复
用PL/SQL 工具生成脚本不就得了吗? 还需要用存储过程么。。。
chenhong90 2013-06-04
  • 打赏
  • 举报
回复
我是楼主,补充一下:这实际上是一个取数的问题。就是从oracle中把表的数据取出来,插入到sql server的表中。表的所有字段都需要。。。。 并且需要在java中执行存储

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧