Oracle存储过程遍历结果集

2018-02-09 12:38:59来源:oschina作者:IT-Mamba人点击

分享

需要给用户表的每个用户 id 都插入一行数据,大量的用户 id 一个个加是不可能的了


于是就得用存储过程来完成了,下面附上存储过程语句和注释


--新建存储过程并命名
CREATE PROCEDURE "INSERT_CODE4USERID"
is
--游标,从tb_user表取出所有usertype=12的用户id
cursor user_id is
select USERID
from tb_user
where usertype = 12;
r_userid tb_user.user_id%type;
BEGIN
--打开游标
open user_id;
LOOP
--遍历商户id
<>
--循环遍历结果集 id 直到为空时退出循环
fetch user_id into r_userid;
EXIT WHEN r_userid%NOTFOUND;
--执行需要插入的语句
insert into UserPR values (r_userid,'test');
goto loop_block;
END LOOP;
END;

建议不要在存储过程中commit,在执行完存储过程,检查下无误后再手动commit会比较保险。


call INSERT_CODE4USERID();commit;

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台