を返し、今すぐクライアントに私は、PostgreSQL 8.3を使用していますREFCURSOR
CREATE OR REPLACE FUNCTION function_1() RETURNS refcursor AS $$
DECLARE
ref_cursor REFCURSOR;
BEGIN
OPEN ref_cursor FOR SELECT * FROM some_table;
RETURN (ref_cursor);
END;
$$ LANGUAGE plpgsql;
をrefcursor
を返します。次の簡単な機能を持つ関数を呼び出すと、私は次のSQLは、この関数を呼び出してコマンドを使用することができます返されたカーソルを操作するが、カーソル名が自動的38.7.3.5. Returning Cursors .Can Iデによって記載されるように明示的関数の入力パラメータとしてカーソル名を宣言し、他にはPostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
によって生成されます私自身のカーソル名を壊して、このカーソル名を使ってPostgresqlの代わりに返されたカーソルを操作して、私のために自動的に生成されますか?そうでない場合は、生成されたカーソル名を取得できるコマンドはありますか?
+1、興味深い質問 –