15/07/2009, 10:31
|
| | Fecha de Ingreso: septiembre-2008
Mensajes: 75
Antigüedad: 16 años, 2 meses Puntos: 1 | |
Respuesta: Problema con datos reales Gracias por la atencion.
1. la funcion es la siguiente:
CREATE OR REPLACE FUNCTION pa_grabardetalle(_codigo character[], _aimporte real[])
RETURNS integer AS
$BODY$
BEGIN
FOR i IN array_lower(_aimporte,1) .. array_upper(_aimporte,1) LOOP
nitem:=nitem+1;
insert into public."Detalle"(codigo,importe1,importe2)
VALUES(_codigo[i],_aimporte[i][1],_aimporte[i][2]);
END LOOP;
if (select sum(importe1)-sum(importe2) from public."Detalle" Where codigo=_codigo)<>0 then
RAISE EXCEPTION 'las sumas no coinciden..!';
RETURN 0;
end if;
RETURN 1;
END;
2. en si no es error del servidor de datos, el error es el que especifico cuando las sumas no coinciden luego de verificarla asi en la funcion
if (select sum(importe1)-sum(importe2) from public."Detalle" Where codigo=_codigo)<>0 then
RAISE EXCEPTION 'las sumas no coinciden..!';
RETURN 0;
end if;
Lo curioso es que venia grabando normalmente hasta que corri la funcion con estos datos
Select "pa_grabardetalle"(ARRAY['10','20','30','40'],ARRAY[[13930.00,0.0],[2646.7,0.0],[165.77,0.0],[0.0,16742.47]]) as resultado;
gracias nuevamente |