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;