全部,我是PostgreSQL的新手 . 我有一个类似下面的函数定义 . 我只是想在postgresql中执行此函数,但无法成功 . 此功能已在服务器上编译 . 我只需要语法来执行它 .
CREATE OR REPLACE FUNCTION schema1.func1(OUT p_refcur refcursor)
RETURNS refcursor
LANGUAGE plpgsql
AS
$body$
BEGIN
OPEN p_refcur FOR
SELECT .....
ORDER BY ....;
END;
$body$
VOLATILE
COST 100;
所以问题是:
- 如何从SQL Workbench等SQL客户端客户端调用/执行此函数?
代码:CREATE OR REPLACE FUNCTION public.test_reffunc(OUT p_ref refcursor)RETURNS refcursor LANGUAGE plpgsql AS $ body $ BEGIN OPEN p_ref FOR SELECT col FROM test;结束; $ body $ VOLATILE COST 100;
承诺;
-----Function call
BEGIN;
SELECT public.reffunc('funccursor');
FETCH ALL from funccursor;
COMMIT;