我使用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;
一個功能,我可以使用下面的SQL命令來調用這個函數和操縱返回的光標,但光標名稱將被PostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
自動生成此外,顯式地聲明由38.7.3.5. Returning Cursors。可我去描述的光標名稱作爲函數的輸入參數clare我自己的遊標名稱並使用此遊標名稱來操縱返回的遊標而不是Postgresql會自動爲我生成?如果沒有,是否有任何命令可以獲取生成的遊標名稱?
+1,有趣的問題 –