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)
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda