精华内容
下载资源
问答
  • oracle 存储过程批量提交
  • oracle 采用存储过程批量提交

    千次阅读 2008-07-11 20:37:00
    批量提交时,可将数据封装成数组,传入存储过程,执行批量提交。例如:批量添加一批用户到数据库的user 表。Tb_user User_id(number) User_name(varchar2(50))

     

    批量提交时,可将数据封装成数组,传入存储过程,执行批量提交。例如:批量添加一批用户到数据库的user 表。
    Tb_user

    User_id(number)
    User_name(varchar2(50))
    User_con(varchar2(50))
    10001
    Jim
    America
    10002
    tom
    English
    10003
    张三
    中国

    数据库中定义一type。来封装数据。如下:
    User_infor:
    Create or replace type user_infor as object
    (user_id number,
    User_name varchar2(50),
    User_con varchar2(50)
    )
    User_array:
    Create or replace type user_array as is varchar2(100) of user_infor
    创建存储过程:
    Create or replace procedure INSER_USER_INFOR(user_in user_array,rs_return out number) as
    I int;
    Begin
    Rs_return:=200;
    While i<=user_in.count loop
    Insert into tb_user values(user_in(i),user_id,user_in(i).user_name,user_in(i).user_con);
    Commit;
    I:=i+1;
    End loop;
     
    End;
    Java 代码如下:
    Conn=connection;

    CallableStatement proc=conn.prepareCall(“{call INSER_USER_INFOR(?,?) }”);

    展开全文
  • 若表数据比较大,直接update会时间很慢,造成锁表,内存不够等问题,可以使用存储过程分批次进行更新提交,where条件最好加上索引,当然也可以批次删除; drop procedure if exists upt_tbl_nm; delimiter // create...

    若表数据比较大,直接update会时间很慢,造成锁表,内存不够等问题,可以使用存储过程分批次进行更新提交,where条件最好加上索引,当然也可以批次删除;

    drop procedure if exists upt_tbl_nm;
    delimiter //
    create procedure upt_tbl_nm()
    begin
        declare ncnt int default 0;
        declare nrow int default 0;
        
        select count(*) into nrow from tbl_nm;
        repeat
            update tbl_nm set trans_dt='20200113' where trans_dt='20190113' limit 5000;
            set ncnt=ncnt+5000;
           until ncnt >= nrow
        end repeat;
    end;
    //
    delimiter ;
    call upt_tbl_nm();
    drop procedure if exists upt_tbl_nm;
    
    
    展开全文
  • Oracle 存储过程批量插入数据

    千次阅读 2016-08-02 18:08:36
    oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markComment varchar2(512); maxId number; begin numCount := 1; userName := 'userName ...

    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;
    /
    


    展开全文
  • 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...


    CREATE OR REPLACE PROCEDURE p_insert_part
    IS
     
     
    --批量提交参数
    num NUMBER;
    begin
      num := 0;
      for i in 1 .. 20000
        loop
           num:=num+1;
          insert into SINO_LOANM (loan_code, creditor)
         values ('C01-20200609'|| to_char(num), 'KH20191628');
     
          num:=num+1;
          if mod(num,10000)=0 then
            commit;
          end if;
      end loop
      commit;
    end;


    ---执行存储过程
    begin
        p_insert_part ;
    end;

    展开全文
  • ORACLE存储过程

    万次阅读 多人点赞 2018-11-02 18:14:48
    oracle存储过程 目录 一.什么是存储过程 二.为什么要写存储过程 三.存储过程基础 1.存储过程结构 2.存储过程语法 3.pl/sql处理存储过程 四.存储过程进阶 1.BUIK COLLECT 2.FORALL 3.pl/sql调试存储过程 ...
  • 需要批量更新数据库表,但是因为涉及到的数据较多(千万条),如果直接用sql更新,估计会把pl/sql弄垮sql如下:update online_product set online_flag = '0' where status = 'ON'所以,写了一个存储过程,以备忘:...
  • 通过存储过程批量删除数据

    千次阅读 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 ...
  • 批量insert造数据和分批提交删除的例子create or replace procedure myj_insert(maxrecords in number :=100) isi number :=1begin for i in 1..a loop Insert into ADZONES (ADZONEID, NAME, FORMAT, TRANSTYPE...
  • #ALTER TABLE rba_product_price_1 ADD COLUMN operate_level TINYINT(2) NOT NULL DEFAULT 1 COMMENT '操作级别'; delimiter $$ DROP PROCEDURE IF EXISTS `inout_param`$$ create procedure inout_param() ...
  • SQL存储过程批量插入

    2017-11-17 17:04:10
    参考:https://www.cnblogs.com/zxtceq/p/5956810.html
  • 有时需要做测试,要向数据库中插入一些测试数据,成百上千条,这时候通过存储过程就可以做到。 实现 打开Navicat,找到上面函数,点击函数 点击新建函数 选择类型为过程 输入名字和参数 点击完成之后 ...
  • 存储过程传表参数批量提交---update from

    千次阅读 热门讨论 2016-11-29 16:17:13
     datatable和xml插入到数据库的时间进行比较,还是datatable比较快,于是首先将XML转换为datatable,然后将整个不经过任何加工的datatable通过存储过程,给了数据库,然后在数据库中进行查询等操作。  ...
  • ∗多选记住复选框状态(分页)+存储过程批量更改状态∗• 代码记住复选框选择状态 上图(运用的控件为listView)表现的是要达到的效果,不仅在当前页面记住选中复选框的状态,在进入到其他页面后,所选条目的复选框...
  • 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;
  • declare begin for i in (select * from person) loop Update person Set xxx...存储过程for in loop 根据括号中的循环条件,来遍历查出的结果,update根据where条件进行更新提交,达到每一次更新都可以利用上一条的...
  • declare @phone varchar(50) declare @name varchar(50) declare @phone1 varchar(50) declare @i int set @phone='test' set @name='M' set @phone1='China' set @i=14585 while @i<...INSERT INTO y01_author ...
  • 用Entity Framework 进行数据库交互,在代码里直接用...通常可以采用的方式是用EF执行SQL语句或者“存储过程”,特别是执行复杂批量任务,当然也可以在MVC底层用ADO.NET,这里就不多说了。怎么做批量呢?这里讲讲在E
  • 存储过程中计数器初始设置为零,每成功一次加1, 问题是,批量处理后,计数器每次都被重置,没有实现累加 求解救
  • 最近发现蝉知的全文检索不是用的第三方类似于sphinx或xunsearch这样的全文检索组件,所以我本着好奇心测试了...MySQL存储过程的创建 DELIMITER // CREATE PROCEDURE myproc(OUT s int) BEGIN SELECT COUNT(*) INTO
  • 示例: 向user表中插入一千万条数据,其中user_id11位手机号随机,可以重复;...-- 如果该名字存储过程已存在,则删除 DROP PROCEDURE IF EXISTS proc_initData1; -- 创建 CREATE PROCEDURE proc_initData1 ( ) BEGI...
  •  这个是把自动提交设置为手动提交,因为这个存储过程是要一次性插入多少条数据. REPEAT END REPEAT; 这两个合一块相当于是while循环的意思,当到达一定条件就不循环了. UNTIL i = max_num 它的意思是直到 i...
  • 采用存储过程的方式批量更新数据,Oracle中也可采用merge-update的方式更新,采用批量提交更新方式会更快 DECLARE MAX_ROWS NUMBER DEFAULT 5000; ROW_ID_TABLE DBMS_SQL.UROWID_TABLE; DATE_TIME_TABLE DBMS_...
  • 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 ...
  • MySQL存储过程-批量插入

    千次阅读 2012-04-23 08:35:34
    情景:批量插入。  附件条件:传入多个参数。  代码: CREATE PROCEDURE batInsertRuiLinkDesc(in versions VARCHAR(4000), in ruidescIds VARCHAR(4000), in versionLength INTEGER, in ruidescIdLength ...
  • MySQL存储过程实现批量插入数据

    千次阅读 2013-03-22 17:22:35
    好吧,一直都只知道数据库的增删改查,其他的什么事务、存储过程用的很少,今天开始项目代码编写,数据库中用户表居然一条记录都没有,既然没有记录我还怎么查询呢?想往用户表添加20条记录,难道我要一条一条的手动...
  • Mybatis 批量插入、存储过程

    千次阅读 2013-03-28 10:49:32
    本文将详细讲解Mybatis访问MySQL数据库的三种方式及测试...三种方式:simple方式(基本数据库逐条访问)、batch方式(批量操作)、procedure方式(存储过程)。 文章主要内容: 准备工作:数据库建立、存储过程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,732
精华内容 21,092
关键字:

存储过程批量提交