Re: Intentando referencias cruzadas.

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
Cc: Foro PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Pablo Braulio <brulics(at)gmail(dot)com>
Subject: Re: Intentando referencias cruzadas.
Date: 2008-11-23 23:40:28
Message-ID: 20081123234028.GE4781@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Hermes Colina Zambra escribió:

> select
> public.pivot_table2('central.cabezales','id_empresa','id_documentos','importe_con_impuestos','ref');
>
> Veo pivot_table2
> ref
> Despues hago asi
>
> FETCH ALL IN ref;
> Cursor ref no existe es lo que me devuelve
>
> Creo que es una lastima no seguir profundizando por
> estar trancado aqui, por que aunque muy rudimentario
> por ahora, esta seria una buena solucion

Tienes que abrir una transaccion antes de invocar a la funcion. El
FETCH tienes que hacerlo dentro de la misma transaccion.

La razon es que los cursores solo viven hasta la duracion de una
transaccion; al cerrar la transaccion, se cierra el cursor
automaticamente. Como no abriste ninguna transaccion explicitamente
antes de llamar a la funcion, se abre una automaticamente para
invocarla, y luego se cierra en cuanto se termina, cerrandose asi el
cursor. Cuando haces FETCH, estas en una transaccion nueva, y el cursor
ya no existe.

(Nota: los cursores que se declaran WITH HOLD pueden persistir mas alla
del fin de una transaccion, pero tienen sus propios problemas, por lo
que es mejor no usarlos a menos que sepas lo que estas haciendo).

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"No hay cielo posible sin hundir nuestras raíces
en la profundidad de la tierra" (Malucha Pinto)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2008-11-23 23:54:36 Re: Intentando referencias cruzadas.
Previous Message Alvaro Herrera 2008-11-23 23:26:24 Re: sobre respuestas fuera de un hilo