Re: error al ReTORNAR UN CONJUNTO SIN RECORD Y SIN REFCURSOR

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: jeferson alvarez <jalvarez(at)renova(dot)com(dot)pe>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: error al ReTORNAR UN CONJUNTO SIN RECORD Y SIN REFCURSOR
Date: 2007-02-15 21:49:51
Message-ID: 20070215214951.GV4682@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

jeferson alvarez escribió:

> lo anteriro escrito funciona en el query del pgadmin pero solo una vez
> cuando lo vuelvo a correr me sale el siguiente error
> ERROR: could not open relation with OID 25337
> CONTEXT: PL/pgSQL function "xxxx" line 7 at for over select rows
> ahi si que toy perdido que significa eso y como debo solucionarlo
> mientras espero su respuesta iire buscando informacion sobre oid que no
> se ques gracias de antemano

El problema es la secuencia temporal que estas creando. La primera vez
que se ejecuta la funcion, el OID de la secuencia queda en cache. La
siguiente vez que se ejecuta, la funcion usa el cache para determinar la
existencia de la secuencia, pero como la secuencia fue creada de nuevo,
tiene un OID diferente. El OID 25337 que reportas arriba corresponde a
la secuencia que fue creada la primera vez; la segunda vez que
ejecutaste, la secuencia tiene otro OID.

La solucion seria ejecutar el SELECT a traves de un EXECUTE, aunque
puede resultar algo engorroso.

Lo que yo haria seria no ponerle los numeros a cada registro, evitando
el uso de la secuencia.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jeferson alvarez 2007-02-15 21:53:31 sequence start con una variable.........
Previous Message Juan Carlos González 2007-02-15 21:40:16 Pregunta