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

该博客介绍了如何在PL/SQL中创建存储过程,包括声明变量、游标操作和批量插入数据,并设置了事务提交间隔。同时展示了在SpringBoot应用中使用MyBatis调用这个存储过程的方法。还提到了创建序列用于生成自增ID,并给出了创建序列的SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/kang1011/article/details/121580174

创建序列

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值