由于语法错误,无法调用存储过程

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

我们从SQL Server迁移到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)

我得到此输出:

错误:查询没有结果数据的目的地

提示:如果要舍弃SELECT的结果,请改用PERFORM。上下文:PL / pgSQL函数spr_getItems(整数,字符变化,字符变化,字符变化)在SQL语句的第3行SQL状态:42601

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

所以我尝试用select调用它>

SELECT * 
FROM CALL spr_getItems (0, null, null, null)

然后出现此语法错误:

错误:语法错误在“ 0”或附近第2行:0,^SQL状态:42601角色:40

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

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

感谢您的帮助!

编辑:澄清我想看结果Edit2:不小心复制了错误的函数名称

我们从SQL Server迁移到Postgres,我正在尝试重写存储过程。该过程已正确创建,但无法调用。这是我的过程签名:PROCEDURE ...

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

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


0
投票

错误是指public.spr_getItems

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