Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/07/2009, 10:31
edwinsp
 
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