gpt4 book ai didi

stored-procedures - 如何在 PostgreSQL 13 中使用 INOUT 参数调用存储过程(不是函数)

转载 作者:行者123 更新时间:2023-12-04 11:40:11 34 4
gpt4 key购买 nike

我有这个存储过程:

CREATE OR REPLACE PROCEDURE SP_ObtenerSecuencialFactura(INOUT p_secuencial INT)
LANGUAGE PLPGSQL
AS
$$
BEGIN
SELECT MAX("CODIGOFACTURA") + 1 INTO p_secuencial FROM "FACTURA";
IF p_secuencial IS NULL THEN
p_secuencial := 1;
END IF;
END
$$
和电话:
DECLARE secuencial INT;
CALL SP_ObtenerSecuencialFactura(secuencial);
RAISE NOTICE '%', secuencial;
但是当我调用该存储过程时出现此错误:

ERROR: syntax error at or near "INT"

LINE 1: DECLARE secuencial INT;


怎么了?我正在寻找示例,但仅存在于函数中。

最佳答案

这是解决方案:

DO
$$
DECLARE secuencial INT;
BEGIN
CALL SP_ObtenerSecuencialFactura(secuencial);
RAISE NOTICE '%', secuencial;
END
$$

NOTICE: 1

DO

Query returned successfully in 85 msec.


PostgreSQL 使用 PL/pgSQL,就像 Oracle 使用 PL/SQL 一样,因此,要使用 OUTIN 参数调用存储过程,我们需要将调用和匿名块中的变量包含在“do”和“$$”中
DO in PostgreSQL

关于stored-procedures - 如何在 PostgreSQL 13 中使用 INOUT 参数调用存储过程(不是函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64297740/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com