Używam PostgreSQL 8.3 i mieć następującą prostą funkcję, która będzie zwracać refcursor
do klientaWywołanie funkcji, która zwraca 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;
Teraz mogę używać komend następujące SQL, aby wywołać tę funkcję i manipulować zwracana kursor, a nazwa kursor jest automatycznie generowany przez PostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
Poza wyraźnie deklarowania nazwę kursora jako parametr wejściowy w funkcji, jak opisano w 38.7.3.5. Returning Cursors .Can I de Czy mam własną nazwę kursora i używam tej nazwy kursora do manipulowania zwróconym kursorem zamiast automatycznie generuje dla mnie Postgresql? Jeśli nie, czy są jakieś polecenia, które mogą uzyskać nazwę wygenerowanego kursora?
+1, interesujące pytanie –