Amigos, queria consultarles a ver si me ayudan a ententer como funciona el 

 

FOR target IN query LOOP
statements
END LOOP;

 

Tengo la siguiente funcion para pruebas

 

CREATE OR REPLACE FUNCTION balanceprueba(vagecod character varying,out cuenta 
varchar,out debe decimal,out haber decimal,out saldo decimal)
RETURNS setof record AS
$BODY$
DECLARE
 rSaldos record;
BEGIN

 

for rsaldos in 
 select *
 from cuentas 
 where cueagecod='010' and cuecod<='2'
 loop
  raise notice 'xx, %',rSaldos.cuecod;
 end loop;

 

 return;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

 

 

Cuando ejuecuto este procedimiento no no entra en el bucle

Pero si a la consulta le quito una condicion

 

for rsaldos in 
 select *
 from cuentas 
 where cueagecod='010' 
 loop
  raise notice 'xx, %',rSaldos.cuecod;
 end loop;

 

Ahi si entra al bucle.

He revisado la consulta sola

 select *
 from cuentas 
 where cueagecod='010' and cuecod<='2'


Con las dos condiciones y si me retorna varios registros, entonces no se cual 
es la causa por la cual cuando pongo las 2 condiciones no ingresa al loop.

 

Espero puedan ayudarme a encontrar el problema de esto 

Saludos

 

 
                                          

Responder a