1. create or replace procedure largedata_insert(ip_table_name   in varchar2, --目标表
  2. ip_table_column in varchar2, --目标字段
  3. ip_table_select in varchar2, --SELECT 查询语句
  4. return_result   out number --返回的结果1,表示成功,0表示失败
  5. ) as
  6. --适合大数据量的插入模板  create Templates by chenzhoumin 20110614
  7. runTime number;
  8. i       number;
  9. amount  number;
  10. s_sql   varchar2(5000);
  11. begin
  12. return_result := 0; --开始初始化为0
  13. --核必逻辑内容,可根据具体的业务逻辑来定义
  14. s_sql := 'select count(1) from (' || ip_table_select || ')';
  15. execute immediate s_sql
  16. into amount;
  17. --每100万提交一次
  18. runTime := amount mod 1000000;
  19. if (runTime > 0) then
  20. runTime := 1 + trunc(amount / 1000000);
  21. end if;
  22. if (runTime = 0) then
  23. runTime := 0 + trunc(amount / 1000000);
  24. end if;
  25. FOR i IN 1 .. runTime LOOP
  26. execute immediate 'insert into ' || ip_table_name || ' (' ||
  27. ip_table_column || ')
  28. select ' || ip_table_column || ' from (select selectSec.*, rownum rownumType
  29. from (' || ip_table_select ||
  30. ') selectSec
  31. WHERE ROWNUM <= ' || i * 1000000 || ')
  32. WHERE rownumType > ' || (i - 1) * 1000000;
  33. --提交
  34. commit;
  35. END LOOP;
  36. return_result := 1;
  37. dbms_output.put_line('结束' || to_char(sysdate, 'yyyymmddhh24miss'));
  38. return;
  39. exception
  40. when others then
  41. return_result := 0;
  42. raise;
  43. return;
  44. end;

存储过程 100w提交的更多相关文章

  1. DB2存储过程语法规则

    如何声明一个存储过程CREATE PROCEDURE 存储过程名(IN 输入变量名 输入变量类型,OUT 输出变量名 输出变量类型)紧跟其后的是存储过程属性列表            常用的有:LAN ...

  2. Oracle存储过程和自定义函数笔记

    学习地址:https://www.imooc.com/learn/370 存储过程和存储函数定义:指存储在数据库中供所有用户程序调用的子程序叫做存储过程 .存储函数. 相同点:完成特定功能的程序.区别 ...

  3. 数据库技术_Orcale技术(0002)_5分钟会用存储过程_存储过程实例

    基础技术: 样例业务功能: 1.依据传入的类型A_TYPE联合查询PROCEDURE_TEST_A表.PROCEDURE_TEST_A_SUB表中的数据.并显示主要内容. 2.依据传入的类型A_TYP ...

  4. db2基础

    DB2知识文档 一.db2 基础 基本语法 注释:"--"(两个减号) 字符串连接:"||" 如set msg='aaaa'||'bbbb',则msg为'aaa ...

  5. HANA SQLScript

    数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示 ...

  6. db2 基础语法

    一.db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:‘’(一定用单引号),如果需 ...

  7. DB2知识文档

    DB2知识文档 一.db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:‘’(一定用 ...

  8. BS程序性能调优

    首先想到的是优化算法.改进技术.扩展设备去做优化.其实在讨论性能的时候,绕不开对业务的理解,不同的业务系统对性能的要求不同,优化方式也不一样.优化性能的前提是保证业务的正确性.我们平时关注的性能主要是 ...

  9. MySql使用存储过程实现事务的提交或者回滚

    DELIMITER $$ DROP PROCEDURE IF EXISTS test_sp1 $$ CREATE PROCEDURE test_sp1( ) BEGIN ; ; START TRANS ...

随机推荐

  1. Java内存回收机制基础[转]

    原文链接:http://blog.jobbole.com/37273/ 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了J ...

  2. Uva 11077 Find the Permutations [置换群 DP]

    题意: 给定$n$和$k$,问有多少排列交换$k$次能变成升序 $n \le 21$ $uva$貌似挂掉了$vjudge$上一直排队 从某个排列到$1,2,...,n$和从$1,2,...,n$到某个 ...

  3. BZOJ 3670: [Noi2014]动物园 [KMP]

    求这玩意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i] 对1,000,000,007取模的结果 n≤5,L≤1,00 ...

  4. BZOJ 3998: [TJOI2015]弦论 [后缀自动机 DP]

    3998: [TJOI2015]弦论 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2152  Solved: 716[Submit][Status] ...

  5. new function

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. php.ini 中文详解

    [PHP]  ; PHP还是一个不断发展的工具,其功能还在不断地删减  ; 而php.ini的设置更改可以反映出相当的变化,  ; 在使用新的PHP版本前,研究一下php.ini会有好处的   ;;; ...

  7. Thrift入门

    简介 Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python, PHP, Ruby, Erlang, Perl, Has ...

  8. CentOS 7 使用iptables防火墙

    # 停止firewalld服务 systemctl stop firewalld systemctl mask firewalld # 安装iptables-services yum install ...

  9. Windows API Finishing

    input { font-size: 14px; height: 26px } td { border-style: none; border-color: inherit; border-width ...

  10. Java集合框架(二)—— HashSet、LinkedHashSet、TreeSet和EnumSet

    Set接口 前面已经简绍过Set集合,它类似于一个罐子,一旦把对象'丢进'Set集合,集合里多个对象之间没有明显的顺序.Set集合与Collection基本上完全一样,它没有提供任何额外的方法. Se ...