全部,我是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;