如何测试refprsor是否已在plpgsql中打开

时间:2017-07-27 12:02:47

标签: oracle postgresql cursor

我正在尝试在Postgres中迁移Oracle Procedure / Funcnctions,我发现在PostgreSQL中处理游标语法时遇到的困难很少。 Oracle proc片段是:

map.ForAllOtherMembers(opt => opt.Ignore());

请帮助使用在postgres中迁移它的语法。

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用未绑定的游标变量。

DECLARE
   c refcursor;
BEGIN
   IF ... THEN
      OPEN c FOR SELECT ...;
   ELSE
      OPEN c FOR SELECT ...;
   END IF;

   LOOP
      FETCH c INTO v_emp_rec;
      ...
   END LOOP;

   CLOSE c;
END;