oracle存储过程大数据量insert
来源:互联网 发布:福山雅治结婚 知乎 编辑:程序博客网 时间:2024/05/10 19:08
对于大数据量的insert into select的做法,我个人来说不赞成这样做,现实也没这样做,对此,我通过oracle的存储过程写了个大数据量的insert into select 的分批插入方法,代码如下
- create or replace procedure largedata_insert(ip_table_name in varchar2, --目标表
- ip_table_column in varchar2, --目标字段
- ip_table_select in varchar2, --SELECT 查询语句
- return_result out number --返回的结果1,表示成功,0表示失败
- ) as
- --适合大数据量的插入模板 create Templates by chenzhoumin 20110614
- runTime number;
- i number;
- amount number;
- s_sql varchar2(5000);
- begin
- return_result := 0; --开始初始化为0
- --核必逻辑内容,可根据具体的业务逻辑来定义
- s_sql := 'select count(1) from (' || ip_table_select || ')';
- execute immediate s_sql
- into amount;
- --每100万提交一次
- runTime := amount mod 1000000;
- if (runTime > 0) then
- runTime := 1 + trunc(amount / 1000000);
- end if;
- if (runTime = 0) then
- runTime := 0 + trunc(amount / 1000000);
- end if;
- FOR i IN 1 .. runTime LOOP
- execute immediate 'insert into ' || ip_table_name || ' (' ||
- ip_table_column || ')
- select ' || ip_table_column || ' from (select selectSec.*, rownum rownumType
- from (' || ip_table_select ||
- ') selectSec
- WHERE ROWNUM <= ' || i * 1000000 || ')
- WHERE rownumType > ' || (i - 1) * 1000000;
- --提交
- commit;
- END LOOP;
- return_result := 1;
- dbms_output.put_line('结束' || to_char(sysdate, 'yyyymmddhh24miss'));
- return;
- exception
- when others then
- return_result := 0;
- raise;
- return;
- end;
以上代码的意思是每100W就向数据库提交一次
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- Oracle insert大数据量经验之谈
- Oracle通用大数据量存储过程分页修正版
- 大数据量分页 存储过程
- oracle insert 大数据量的经验
- 大数据量分页存储过程效率测试
- 大数据量分页存储过程效率测试
- JAVA客户端传递对象数组到Oracle存储过程做大数据量插入
- oracle导出表insert语句存储过程
- oracle与mysql存储过程insert into
- 一个比较实用的大数据量分页存储过程
- 一个比较实用的大数据量分页存储过程 (转)
- 64位模式下Access数据库不能访问问题
- BCGControlBar控件使用方法(附加视频下载地址)
- 关于Class.getResource与Class.getClassLoader.getResource的区别
- PHP全选择删除功能
- BASH增加日志功能
- oracle存储过程大数据量insert
- 代理理解(二)
- 空间3点,计算圆心坐标
- android 推送
- 10 款高质量的 jQuery 表单验证插件
- Merge Into 语句代替Insert/Update在Oracle中的应用实战
- Ubuntu 安装字体方法
- android-百度地图BDLocationListener接口未回调 - 随心
- 学习笔记--《android内核剖析》binder