如何在PostgreSQL中循环游标

时间:2016-10-27 04:50:12

标签: postgresql function cursor plpgsql

我有一个功能

drop function ProcessReward();
CREATE OR REPLACE FUNCTION ProcessReward()
RETURNS text AS $$
DECLARE 
sessionid NO SCROLL CURSOR FOR SELECT pg."Setting",pg."UserId",pg."Id" FROM "Development"."PersonGame" pg inner join "Development"."Game" g on g."Id" = pg."GameId" pg."GameId"=1 for read only;
titles TEXT DEFAULT '';
rec record;
jsonrec record;
jsonrecord record;
 BEGIN
 OPEN sessionid;
loop

FETCH sessionid INTO rec;
   if not found then
        exit ;
   end if;
       EXECUTE 'select * from "Development"."GameRecipient" where "PersonGameId"=$1' into jsonrecord using rec."Id";
--I want to loop here every row returned by above query
--loop start
        --    do your task

--loop end

end loop;
return titles;
END;
$$ LANGUAGE plpgsql;

我的查询

  

EXECUTE'select * from“Development”。“GameRecipient”在哪里   “PersonGameId”=使用rec进入jsonrecord的$ 1'。“Id”;

返回

col1   col2     col3
123     324      444
345     222      765

我想处理上面查询返回的所有行,如何在PostgreSQL中实现这一点。

0 个答案:

没有答案