Oracle储存过程之百万级批量拷贝

create or replace procedure 存储名 is
   own_add varchar2(40);
  cursor 游标名 is
         select 字段1,字段2,字段3 FROM 表名
         WHERE 条件;
         变量1 表名.字段1%TYPE;
         变量2 表名.字段2%TYPE;
         变量3 表名.字段3%TYPE;
  num integer;
  begin
    num := 0;
    open 游标名;
    loop
    select 序列名.nextval into own_add from dual;
    fetch move into 变量1,变量2,变量3;
    exit when 游标名%notfound;
insert into 目标表(自增id,目标字段1,目标字段2,目标字段3)   

values(own_add,变量1,变量2,变量3);
    num := num + 1;
    if num = 5000 then
      commit;
      num := 0;
      end if;
      end loop;
      commit;
      close move;
end 储存名;
/

plsql启动储存过程 -- begin 储存名;end;

springboot_mybatis调用储存过程

mapper层:

void getTestPro();

xml层:

<select id="getTestPro" statementType="CALLABLE">
  <![CDATA[
  {call 储存名()}
      ]]>
</select>

链接:https://blog.csdn.net/kang1011/article/details/121580174

创建序列

create sequence 序列名
 increment by 1  
 start with 1   
 nomaxvalue      
 nominvalue      
 cache 20;    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值