Skip site navigation (1) Skip section navigation (2)

Re: Recorrer un Refcursor

From: Javier Chávez B(dot) <jchavezb(at)gmail(dot)com>
To: "Fernando Siguenza" <fsigu(at)hotmail(dot)com>
Cc: fernando(dot)fontana(at)gmail(dot)com, "Foro Postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Recorrer un Refcursor
Date: 2008-11-26 14:03:26
Message-ID: ded64bba0811260603w3786d016l8a6fd0204169aed7@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
On Wed, Nov 26, 2008 at 1:54 PM, Fernando Siguenza <fsigu(at)hotmail(dot)com> wrote:
> No el update
>
> CURRENT OF cursor_name,
>
> Lo que hace es actualizar una tabla y yo lo que necesito es
>  actualizar los datos que tengo en un cursor, esto es lo que necesito a ver
> si me ayudan de pronto a encontrar otra solucion,
>
> Tengo una tabla de asientos donde ago el siguiente select,
>
> open rfcursor for
>      select asidoc,' ' as documento,asinum,asidebe,asihaber,0.00 as saldo
> from asientos
> algo asi
>     CD,'',1,10,0,0.0
>     CD,'',2,15,0,0.0
>     CD,'',3,0,3,0.0
>     FA,'',1,17,0,0.0
>
> ahora este resultado me retona la columna documento en blanco y la columna
> saldo todo en cero,
> entonces quiero recorrer este cursor para hacer el select del nombre del
> documento que esta en otra tabla y ponerlo en el cursor y a la columna del
> saldo poner la resta del debe - haber. Necesitando tener algo asi

Por lo que entendi lo que necesitas es Hacer un Join entre la tabla de
asientos y la tabla que contiene el nombre de la cuenta cruzando por
el Id....o no?

>
>     CD,'COMPROBANTE DIARIO',1,10,0,10.0
>     CD,'COMPROBANTE DIARIO',2,15,0,15.0
>     CD,'COMPROBANTE DIARIO',3,0,3,-3.0
>     FA,'FACTURA VENTA',1,17,0,17.0
> Y finalmente retornar este cursor
> Entonces como digo necesito es poder recorrer el cursor y actualizar los
> datos del mismo, o hay alguna otra forma de hacer esto con cursores????
> Gracias de antemano
>
> ________________________________
> Date: Tue, 25 Nov 2008 23:23:23 -0200
> From: fernando(dot)fontana(at)gmail(dot)com
> To: fsigu(at)hotmail(dot)com
> Subject: Re: [pgsql-es-ayuda] Recorrer un Refcursor
> CC: pgsql-es-ayuda(at)postgresql(dot)org
>
> Hola,
> creo que lo que estás buscando es el "update ... where current of
> nombrecursor". fijate en
> http://www.postgresql.org/docs/8.3/static/sql-update.html
>
> saludos
>
> El 25 de noviembre de 2008 21:33, Fernando Siguenza <fsigu(at)hotmail(dot)com>
> escribió:
>
> Si lo lei pero no me dice nada de como actualizar un campo de un registro
> del cursor, estoy buscando parec ser algo como
>
> select
> asicab.asiagecod,asicab.asifec,asicab.asidoc,asicab.asinum,0.00000 as saldo
>  from asicab for update
>
> o algo asi
> lyego con una sentencia update actualizo los datos del cursor, pero todavia
> no doy con la respuesta
>
> Gracias por responder
>
>> Date: Tue, 25 Nov 2008 21:13:48 -0200
>> From: agustingenoves(at)gmail(dot)com
>> To: fsigu(at)hotmail(dot)com
>> Subject: Re: [pgsql-es-ayuda] Recorrer un Refcursor
>> CC: pgsql-es-ayuda(at)postgresql(dot)org
>>
>> Creo que aca esta todo lo que necesitas, no se si lo viste
>> http://www.postgresql.org/docs/8.3/static/plpgsql-cursors.html
>>
>> 2008/11/25 Fernando Siguenza <fsigu(at)hotmail(dot)com>:
>> > Amigos como estan, sigo molestandoles con preguntitas, necesito que me
>> > ayuden con un problemita,
>> >
>> > como hago para recorrer y manipular un refcursor, tengo algo como esto
>> >
>> > CREATE OR REPLACE FUNCTION prueba(agencia varchar) RETURNS refcursor AS
>> > $$
>> > DECLARE
>> > cMayor refcursor;
>> >
>> > BEGIN
>> > open cMayor for
>> > select
>> > asicab.asiagecod,asicab.asifec,asicab.asidoc,asicab.asinum,0.00000 as
>> > saldo
>> > from asicab;
>> > aqui como hago para recorrer el refcursor y cambiar el valor de la
>> > columna saldo por algun valor
>> > RETURN NEXT cMayor;
>> > END;
>> > $$
>> > LANGUAGE 'plpgsql';
>> >
>> > Gracias
>> >
>> > ________________________________
>> > See how Windows(R) connects the people, information, and fun that are
>> > part of
>> > your life
>
>
> ________________________________
> Get 5 GB of storage with Windows Live Hotmail. Sign up today.
>
> ________________________________
> Windows Live Hotmail now works up to 70% faster. Sign up today.



-- 
Cumprimentos
jchavez
linux User #397972 on http://counter.li.org/

In response to

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2008-11-26 14:23:15
Subject: Re: Tama?==?iso-8859-1?Q?ño de un varchar en la base de datos.
Previous:From: Fernando SiguenzaDate: 2008-11-26 13:54:09
Subject: RE: Recorrer un Refcursor

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group