SQL状态:22P02整数的输入语法无效:" f"

时间:2018-04-03 17:21:43

标签: postgresql

我遇到运行此功能的问题。我无法找到原因。对于任何提示,我都会非常感激。我尝试使用此功能制作INSERT

    CREATE OR REPLACE FUNCTION multas.insertar_cuota(cant_cuota int,fecha_multa date,importe_total int, cod_multa int,cuota int, nro_cuota int, financiado int) 
RETURNS VOID AS

$BODY$
DECLARE 
ultima_cuota int;
diferencia int;
num_cuota int;
venc date;
BEGIN 
IF (financiado=1) 
THEN PERFORM cuota= ROUND(importe_total/cant_cuota)
,diferencia=importe_total-(cuota*cant_cuota)
,ultima_cuota=cuota+diferencia;

WHILE nro_cuota<(cant_cuota+1)
LOOP
IF(nro_cuota=cant_cuota)
THEN cuota=ultima_cuota;

 ELSE 
cuota=cuota;
END IF;
BEGIN
num_cuota=(nro_cuota=(nro_cuota+1));
venc=fijarvencimiento(fecha_multa);
INSERT INTO multas.cuotas_multas(id_cuota,nro_cuota,fecha_vto,importe_vto,pagado)
VALUES(cod_multa,num_cuota,venc,cuota,NULL);
END;

END LOOP;
END IF;
END;
$BODY$ LANGUAGE plpgsql;

1 个答案:

答案 0 :(得分:2)

错误是抱怨你正在尝试使用&#34; f&#34; (假)它期望一个整数。

我怀疑这条线是负责任的

num_cuota=(nro_cuota=(nro_cuota+1));

我不知道你认为它在做什么,但它正在检查nro_cuota = (nro_cuota+1)当然是错误的。

此外,使用:=进行分配 - 它使代码更清晰。