精华内容
下载资源
问答
  • 存储过程批量提交
    2021-02-08 23:56:11

    oracle 存储过程批量插入大量数据

    declare

    numCount number;

    userName varchar2(512);

    email varchar2(512);

    markComment varchar2(512);

    maxId number;

    begin

    numCount := 1;

    userName := 'userName number : .';

    email := 'email number : ';

    markComment := 'markComment number .';

    for i in 1 .. 1000 loop

    for j in 1 .. 1000 loop

    insert into userInfo (userId,userName,email,markComment) values

    (numCount,userName||numCount,email||numCount,markComment||numCount);

    numCount := numCount + 1;

    end loop;

    commit;

    end loop;

    end;

    /

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    更多相关内容
  • oracle 存储过程批量提交
  • db2存储过程批量提交

    2020-12-29 21:57:54
    db2存储过程批量提交云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您...

    db2存储过程批量提交

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

    选择云服务器ECS,您可以轻松构建具有以下优势的计算资源:

    无需自建机房,无需采购以及配置硬件设施。

    分钟级交付,快速部署,缩短应用上线周期。

    快速接入部署在全球范围内的数据中心和BGP机房。

    成本透明,按需使用,支持根据业务波动随时扩展和释放资源。

    提供GPU和FPGA等异构计算服务器、弹性裸金属服务器以及通用的x86架构服务器。

    支持通过内网访问其他阿里云服务,形成丰富的行业解决方案,降低公网流量成本。

    提供虚拟防火墙、角色权限控制、内网隔离、防病毒攻击及流量监控等多重安全方案。

    提供性能监控框架和主动运维体系。

    提供行业通用标准API,提高易用性和适用性。

    有关云服务器ECS的更多信息,参见 云服务器ECS帮助文档。

    展开全文
  • oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用
  • DB2存储过程批量提交(续)之前的帖子因为结了,所以就没有人去看了~于是乎就新开了个帖子!问题一:在不考虑性能损失的情况下,DB2存储过程分批提交可以尝试触发器调用存储过程提交的方法,下面是一个例子。此过程...

    DB2存储过程批量提交(续)

    之前的帖子因为结了,所以就没有人去看了~于是乎就新开了个帖子!

    问题一:

    在不考虑性能损失的情况下,DB2存储过程分批提交可以尝试触发器调用存储过程提交的方法,下面是一个例子。

    此过程基本逻辑如下:当对表有INSERT操作时,触发存储过程COMMIT_TRIGGER,由COMMIT_TRIGGER调用存储过程COMMIT_A,在COMMIT_A

    中查询表的记录数,用记录数模每次提交限定的记录数,符合整数倍,提交当前记录。

    每次插入都会对表的记录数进行查询,会降低效率,但应该不会增加内存、锁的消耗。

    1、触发器:

    CREATE TRIGGER COMMIT_TRIGGER AFTER INSERT ON TABLE

    REFERENCING NEW AS NEWROW FOR EACH ROW MODE DB2SQL BEGIN ATOMIC

    CALL COMMIT_A();

    END;

    2、存储过程:

    CREATE PROCEDURE COMMIT_A ()

    LANGUAGE SQL

    SPECIFIC INSTANCE.COMMIT_A

    P1: BEGIN

    DECLARE COUNT INTEGER;

    SELECT COUNT(1) INTO COUNT FROM TABLE;

    IF (MOD(COUNT,10000)=0) THEN

    COMMIT WORK;

    END IF;

    END P1

    这个例子是一个同事提出来的,但貌似效率会很低,没有做过尝试,不知道各位尝试过没有~

    介绍下经验~

    问题二:

    DB2有个以下SQL的语法

    GET DIAGNOSTICS v_rowcount = ROW_COUNT;

    这条语句,假设我在update10W条数据,在我执行到一半(update了5W数据)的时候这个SQL不能统计出来update所影响到的数据信息,只有在update执行完了 才能统计,也就是说这个SQL不是实时的?

    新手求教~~~望大家多多指导哈~~~

    展开全文
  • Oracle利用存储过程实现DML语句批量提交

    1.Oracle批量提交得必要性

    Oracle在给大量数据进行DML操作时,经常会占用大量得内存和temp空间,一旦空间不够就会报错,解决得方法往往是去扩大temp空间得大小。其实我们把一个DML分成多次去commit就能很好得解决这个问题。

    2.代码实现

    下面以一个insert语句为例,我们需要exec_sql形成得结果数据插入到target_table中,由于结果数据过大,我们采用每1000w条数据commit一次得方式插入到目标表中。这里我们需要注意的是,commit执行的太频繁也会降低语句运行的速度,所以要根据情况来控制每次提交的数据条数。代码如下:

    create or replace procedure submit_pro(exec_sql in varchar2 , target_table in varchar2)
    as
    v_sql VARCHAR2(4000);
    begin
    v_sql := '
    DECLARE CURSOR cur IS SELECT * FROM ('||exec_sql||');
      TYPE rec IS TABLE OF '||target_table||'%ROWTYPE;
      recs rec;
    BEGIN
      OPEN cur;
      WHILE (TRUE) LOOP
        FETCH cur BULK COLLECT INTO recs LIMIT 10000000;
        FORALL i IN 1 .. recs.COUNT
          INSERT INTO '||target_table||' VALUES recs (i);
          dbms_output.put_line(recs.COUNT);
        COMMIT;
        EXIT WHEN cur%NOTFOUND;
      END LOOP;
      CLOSE cur;
    END;
    ';
    EXECUTE IMMEDIATE(v_sql);
    
    end;
    
    
    展开全文
  • MySQL:存储过程批量插入表数据
  • Oracle 存储过程实现批量插入

    千次阅读 2018-08-11 17:19:53
    create or replace procedure BATCH_INSERT_TABLEA_UER(insertNo in integer) is  -----------insertNo:传入参数,表示要插入的数据量  MAX_NO INTEGER;   I INTEGER; BEGIN  IF insertNo IS NOT NULL THEN ...
  • 存储过程:简单类比的话,可以看作我们的Java程序,只不过前者是在数据库中运行。 存储过程声明: CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1; 参数2; ) IS 变量1; 变量2; BEGIN --执行体 END; 示例...
  • oracle 采用存储过程批量提交

    千次阅读 2008-07-11 20:37:00
    批量提交时,可将数据封装成数组,传入存储过程,执行批量提交。例如:批量添加一批用户到数据库的user 表。Tb_user User_id(number) User_name(varchar2(50))
  • 对大表进行插入时,数据非常多,会把undo表空间撑爆,导致插入不成功,可以使用批量提交进行插入,及时释放回滚段declare--定义cursor把数据全部读入内存中cursor cur isselect nsrzhdah, sfzjlx_dm, sfzjhm, xm...
  • Postgresql - plpgsql - 存储过程提交

    千次阅读 2019-11-18 15:02:17
    在PG11之后,出了一个新的功能,就是可以在存储过程提交事务了。 方便了很多。 *这样的存储过程必须是一个procedure,不能是一个function,调用的时候,必须使用call,不能使用select 。 create or replace ...
  • mysql使用存储过程实现批量插入 -- 删除存储过程 DROP PROCEDURE IF EXISTS proc_initData; -- 1、创建 follow_type 1信息部 0技术部 status 1提交 3通过 CREATE PROCEDURE proc_initData() BEGIN DECLARE i INT ...
  • Oracle 使用存储过程批量删除
  • 若表数据比较大,直接update会时间很慢,造成锁表,内存不够等问题,可以使用存储过程分批次进行更新提交,where条件最好加上索引,当然也可以批次删除; drop procedure if exists upt_tbl_nm; delimiter // create...
  • MySQL存储过程-批量插入

    千次阅读 2012-04-23 08:35:34
    情景:批量插入。  附件条件:传入多个参数。  代码: CREATE PROCEDURE batInsertRuiLinkDesc(in versions VARCHAR(4000), in ruidescIds VARCHAR(4000), in versionLength INTEGER, in ruidescIdLength ...
  • declare begin for i in (select * from person) loop Update person Set xxx...存储过程for in loop 根据括号中的循环条件,来遍历查出的结果,update根据where条件进行更新提交,达到每一次更新都可以利用上一条的...
  • 通过存储过程批量删除数据

    千次阅读 2018-06-01 08:56:47
    1,存储过程CREATE OR REPLACE PROCEDURE "PUBLIC"."DELETE_DEP_TEBLE"("TABLE_TYPE" CHARACTER VARYING(10 CHAR)) AS v_sql varchar2(4000) default ''; --动态sql语句 begin for ...
  • 批量增加数据 teacher表 student表 5000个教师,每个教师30个学生 CREATE OR REPLACE PROCEDURE INSERT_teacher as begin for i in 1..5000 loop INSERT INTO teacher(TID,TNAME,AGE)VALUES (i, '老师' || i, ...
  • declare i int;--定义变量 v_count int;--定义变量 v_loop int;--定义变量 begin select count(*) into v_count from T_HPS_JNL WHERE THD_CHK_FLG = '0' and AC...--提交 i:=i+1;--i依次加1 end loop;--结束循环 end;
  • 采用存储过程的方式批量更新数据,Oracle中也可采用merge-update的方式更新,采用批量提交更新方式会更快 DECLARE MAX_ROWS NUMBER DEFAULT 5000; ROW_ID_TABLE DBMS_SQL.UROWID_TABLE; DATE_TIME_TABLE DBMS_...
  • 结合MySQL的存储过程和事务,实现超大批量数据插入,万级、十万级、百万级、千万级、亿级。一百万条左右的数据插入27.x seconds左右;一千万行需要5 minutes左右;一亿条左右的数据插入,预估需要1 hour 20 minutes...
  • 示例: 向user表中插入一千万条数据,其中user_id11位手机号随机,可以重复;...-- 如果该名字存储过程已存在,则删除 DROP PROCEDURE IF EXISTS proc_initData1; -- 创建 CREATE PROCEDURE proc_initData1 ( ) BEGI...
  • 批量提交 批量提交特点 : 占用较少 undo, 资源 ( 独占锁 ,undo) 快速释放 , 执行时间长 批量提交适合场景 : 在线大批量插入 , 更新 , 删除数据 二、 BULK COLLECT+FORALL 性能提升...
  • mysql利用存储过程批量插入数据

    万次阅读 2014-10-30 11:36:11
    上述存储过程指定了两个输入参数:IP_NUM OID_NUM,两个参数分别指定了有多少台机器,以及每台机器有多少OID。 之后调用存储过程就可以了: call autoinsert 1000 50 意思是,有100台机器,每个机器有50...
  • CREATE OR REPLACE PROCEDURE p_insert_part ...--批量提交参数 num NUMBER; begin num := 0; for i in 1 .. 20000 loop num:=num+1; insert into SINO_LOANM (loan_code, creditor) value...
  • ORACLE存储过程

    万次阅读 多人点赞 2018-11-02 18:14:48
    oracle存储过程 目录 一.什么是存储过程 二.为什么要写存储过程 三.存储过程基础 1.存储过程结构 2.存储过程语法 3.pl/sql处理存储过程 四.存储过程进阶 1.BUIK COLLECT 2.FORALL 3.pl/sql调试存储过程 ...
  •  这个是把自动提交设置为手动提交,因为这个存储过程是要一次性插入多少条数据. REPEAT END REPEAT; 这两个合一块相当于是while循环的意思,当到达一定条件就不循环了. UNTIL i = max_num 它的意思是直到 i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,029
精华内容 24,811
关键字:

存储过程批量提交