由于语法错误,无法调用StoredProcedure

问题描述 投票:0回答:1

我们从mssql迁移到了postgres,我正在尝试重写存储过程。该程序已正确创建,但我无法调用它。

这是我的过程签名:

PROCEDURE spr_getItems ( 
  p_kind int = NULL,
  p_customerId varchar(256) = NULL,
  p_resourceIds varchar(2048) = NULL,
  p_referenceIds varchar(2048) = NULL
)

现在,当我尝试像CALL public.spr_getItems ( 0, null, null, null)那样执行它时,得到以下输出:

ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT:  PL/pgSQL function spr_getshadowrefs(integer,character varying,character varying,character varying) line 3 at SQL statement
SQL state: 42601

但是我不想丢弃结果,我想看到它们。

所以我尝试用选择SELECT * FROM CALL spr_getItems (0, null, null, null)调用它,但出现以下语法错误:

ERROR:  syntax error at or near "0"
LINE 2:  0, 
         ^
SQL state: 42601
Character: 40

我还尝试以其他几种方式执行它,例如添加“ public”。在过程名称之前,但是在“。”处出现语法错误。或者仅使用select spr_getItems(0,null,null,null)select spr_getItems(0)select * from call spr_getItems (0)等,依此类推。

我是不是完全做错了什么,而忽略了文档中的某些内容?

感谢您的帮助!

编辑:澄清我想看结果

sql postgresql stored-procedures pgadmin-4
1个回答
0
投票

您是否尝试过EXEC spr_getItems (0, null, null, null)

© www.soinside.com 2019 - 2024. All rights reserved.