Re: Consulta sobre Bucle

From: Juan <smalltalker(dot)marcelo(at)gmail(dot)com>
To: Fernando Siguenza <fsigu(at)hotmail(dot)com>
Cc: Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta sobre Bucle
Date: 2010-08-10 19:54:40
Message-ID: AANLkTinvbm02G24DxyuA5eBeioVthR1Gr4P9Wr1QyT4y@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Fernando

Algo me resulta raro de observar tu codigo.
es que la declaras como que retorna

setof record
pero el return esta pelado.
no deberias devolver dentro del loop
next record; ?
quizas no sea asi pero me parece sospechoso.
saludos

Juan

2010/8/10 Fernando Siguenza <fsigu(at)hotmail(dot)com>

> Estimado Juan, como te comentaba la consulta la he probado y funciona
> correcto, adjunto envio algunas imagenes a ver si de pronto me ayudan a
> encontrar el error
>
> El archivo consulta esta ejecutado solo la consulta a ver si esta bien
> select *
> from cuentas
> where cueagecod='010' and cuecod<='2'
>
> y como veran en el archivo si me retorna filas
>
> En el archivo Llamada procedimiento, esta la llamada ya al procedimiento
> que ejecuta esa consulta y deberia entrar al bucle y mostrar un mensaje,
> como ven no muestra ningun mensaje y no entra al bucle
>
> En el archivo Llamada procedimiento1, cuando quito la condicion cuecod<='2'
> ahi si entra a ese bucle y me muestra los mensajes, estoy seguro que la
> consulta si da resultados pero no se por que no entra el bucle.
>
>
>
> Saludos
>
> ------------------------------
> Date: Tue, 10 Aug 2010 15:32:54 -0300
> Subject: Re: [pgsql-es-ayuda] Consulta sobre Bucle
> From: smalltalker(dot)marcelo(at)gmail(dot)com
> To: fsigu(at)hotmail(dot)com
>
> Fernando
>
> La unica respuesta que se me ocurre es que ninguno machea ,
> proba el codigo de tu query en pgadmin
>
>
> On Tue, Aug 10, 2010 at 1:38 PM, Fernando Siguenza <fsigu(at)hotmail(dot)com>wrote:
>
> 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
>
>
>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2010-08-10 19:59:37 Re: Consulta sobre Bucle
Previous Message Osvaldo Mendoza 2010-08-10 16:46:06 Consulta