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
>
>
>
>
>
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 |