相关疑难解决方法(0)

测试使用和返回refcursor的PostgreSQL函数

我想测试Postgres函数的结果(不可能改变函数).

该函数接收REFCURSOR和其他几个参数作为参数,并返回相同的RECURSOR.

get_function_that_returns_cursor(ret, 4100, 'SOMETHING', 123465)
Run Code Online (Sandbox Code Playgroud)

现在我想在Postgres中创建一个小测试来获得这个FUNCTION的结果.像下面的代码(这是我的方法,但它不起作用):

DO $$ DECLARE
 ret REFCURSOR; 
 row_to_read table_it_will_return%ROWTYPE ;
BEGIN
 PERFORM get_function_that_returns_cursor(ret, 4100, 'SOMETHING', 123465);
-- OR SELECT get_function_that_returns_cursor(ret, 4100, 'SOMETHING', 123465) INTO ret
 FOR row_to_read IN SELECT * FROM ret LOOP
   -- (...)
   RAISE NOTICE 'Row read...';
 END LOOP;
 CLOSE ret;
END $$;
Run Code Online (Sandbox Code Playgroud)

有关如何使其工作的任何建议?一种通用解决方案,可用于测试此类函数(获取Cursor并返回Cursor?

如果我们不知道返回的行类型怎么能这样做呢?

在PostgresQL中调试此类事物的最佳方法是什么?

sql postgresql plpgsql cursor

7
推荐指数
1
解决办法
8869
查看次数

标签 统计

cursor ×1

plpgsql ×1

postgresql ×1

sql ×1