Postgres 関数の結果をテストしたい (関数を変更することはできません)。
この関数は、引数として REFCURSOR と他のいくつかのものを受け取り、同じ RECURSOR を返します。
get_function_that_returns_cursor(ret, 4100, 'SOMETHING', 123465)
ここで、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 $$;
これを機能させる方法について何か提案はありますか? このタイプの関数をテストするために使用できる一般的なソリューション (Cursor を取得して Cursor?
また、返される行タイプがわからない場合は、どうすればよいのでしょうか?