我遇到运行此功能的问题。我无法找到原因。对于任何提示,我都会非常感激。我尝试使用此功能制作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;
答案 0 :(得分:2)
错误是抱怨你正在尝试使用&#34; f&#34; (假)它期望一个整数。
我怀疑这条线是负责任的
num_cuota=(nro_cuota=(nro_cuota+1));
我不知道你认为它在做什么,但它正在检查nro_cuota = (nro_cuota+1)
当然是错误的。
此外,使用:=
进行分配 - 它使代码更清晰。