我已经成功创建了返回游标集的函数,即:
CREATE OR REPLACE FUNCTION select_multiple(refcursor, refcursor)
RETURNS SETOF refcursor AS
$BODY$
BEGIN
OPEN $1 FOR SELECT testtemptable.myid FROM testtemptable; -- Open the first cursor
RETURN NEXT $1; -- Return the cursor to the caller
OPEN $2 FOR SELECT testtemptable.name FROM testtemptable; -- Open the second cursor
RETURN NEXT $2; -- Return the cursor to the caller
END;
$BODY$
LANGUAGE plpgsql VOLATILE
我调用该函数,我希望每个游标返回5行,看起来好像正在发生。以下是我要做的事情:
BEGIN;
select select_multiple('a', 'b');
FETCH ALL IN "a";
FETCH ALL IN "b";
COMMIT;
但我的问题是,我如何“可视化”数据以验证返回的内容? “数据输出”选项卡根本不显示任何内容,“消息”选项卡显示
Query result with 2 rows discarded.
Query result with 5 rows discarded.
Query result with 5 rows discarded.
Query returned successfully with no result in 11 ms.
我的结果放在哪里?如何在“数据输出”标签中显示它们? PostgreSQL版本9.1
答案 0 :(得分:4)
您的基本问题是pg_admin不会显示多个查询块的结果。
您需要做的是按顺序运行每个语句作为单独的查询。
即。
Begin; (run)
SELECT * FROM .... ; (run)
FETCH ALL FROM "a"; (run);
etc.
然后它将按预期工作。