暂无图片
这个如何改成pg中的存储过程??
我来答
分享
暂无图片 匿名用户
这个如何改成pg中的存储过程??

create or replace procedure proc01_nocommit as
cursor c01 is select id from t1;
v_id integer;
begin
open c01;
fetch c01 into v_id;
while (c01%FOUND) loop
insert into t2 values(v_id);
perform pg_sleep(1);
fetch c01 into v_id;
end loop;
end;
/


某国产db中的,如何改成标准的pg中的存储过程??

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
游湖

这个要墨值。😄

暂无图片 评论
暂无图片 有用 1
彭冲
create or replace procedure proc01_nocommit() 
as $$
declare
    c01 cursor for select id from t1;
    v_id integer;
begin
    open c01;
    fetch c01 into v_id;
    while (FOUND) loop
         insert into t2 values(v_id);
         perform pg_sleep(1);
         fetch c01 into v_id;
    end loop;
end;
$$ language plpgsql;

暂无图片 评论
暂无图片 有用 0
zzzdwd
2022-12-07
加一句 close c01;
彭冲
答主
2022-12-07
游标在事务结束后会自动关闭,procedure里使用WITH HOLD特性的游标,需要记得close游标,释放资源。
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏