Tôi đang sử dụng PostgreSQL 8.3 và có chức năng đơn giản sau đây sẽ trả về một refcursor
cho khách hàngGọi một hàm trả về một 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;
Bây giờ, tôi có thể sử dụng SQL sau lệnh để gọi chức năng này và thao tác con trỏ trở về, nhưng tên con trỏ sẽ tự động được tạo ra bởi các PostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
Bên cạnh đó, tuyên bố một cách rõ ràng tên con trỏ như tham số đầu vào của hàm như mô tả của 38.7.3.5. Returning Cursors .Can tôi de clare tên con trỏ của riêng tôi và sử dụng tên con trỏ này để thao tác con trỏ trả về thay vì Postgresql tự động tạo cho tôi? Nếu không, có bất kỳ lệnh nào có thể lấy tên con trỏ được tạo không?
+1, câu hỏi thú vị –