我需要测试一个 psql 函数 (sp_create_refcursors),它返回 3 个游标。具体来说,我需要查看 3 个游标中的每个“包含”哪些数据。
以下脚本包含执行测试的样板代码:
DO $$
BEGIN
select sp_create_refcursors();
//At this point I somehow need to get the names of the cursors returned by function sp_create_refcursors()
FETCH ALL IN "? 1";
FETCH ALL IN "?? 2";
FETCH ALL IN "??? 3";
END;
$$;
问题是我不知道函数 sp_create_refcursors() 返回的游标的名称,即我不知道用什么来代替“?”、“??” 和 ”???”。
我知道 - 原则上 - 这个问题可以通过重新设计函数并将所有游标名称作为参数传递以获得预定义的游标名称来解决(参见http://www.sqllines.com/postgresql/how-to/return_result_set_from_stored_procedure)。
但是,该功能对我来说是禁区,即它对我正在做的事情是外生的。
因此,我需要另一种方法来获取函数返回的三个游标的名称。- 我怎样才能做到这一点?