[pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función

From: Silvio Quadri <silvioq(at)gmail(dot)com>
To: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
Subject: [pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función
Date: 2009-11-05 13:01:27
Message-ID: 61dc71dc0911050501g4c21cf5eif54d8f6c1fc80b85@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 5 de noviembre de 2009 08:37, Raúl Andrés Duque Murillo
<ra_duque(at)yahoo(dot)com(dot)mx> escribió:
> Cordial Saludo.
>
> Tengo una función que incluye bastantes pasos y quisiera hacer un monitoreo
> de cada acción grabando filas a una tabla de log. Cuando la función se
> ejecuta sin errores todo perfecto pero si hay errores las entradas a la
> tabla de log se pierden (porque están dentro de una transacción) ...
> pensaría que no se puede pero podría ejecutar sentencias sin transacción
> dentro de una función? Cómo podría implementarlo?
>
> Lo único que se me ha ocurrido es grabar los log no a una tabla sino a una
> cadena y al fina vaciarlo a una tabla posterior a un savepoint algo de este
> estilo:
>
> /*********************************************************/
> DECLARE Log
> SAVEPOINT SP1
>     sentencia1
>     log a cadena 1
>
>     sentencia2
>     log a cadena 2
>
>     sentencia2
>     log a cadena 2
> EXCEPTION
>     ROLLBACK TO SP1
>
> Grabar a tabla de log, log almacenado en cadena Log
> /*********************************************************/
>
> Cualquier sugerencia es bienvenida.
>
> Atentamente,
>
> RAUL DUQUE
> Bogotá, Colombia

Hola! ¿Si haces notice y capturás los mensajes desde la aplicación no
es más sencillo?
Silvio

--
Silvio Quadri

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-11-05 13:09:51 Re: Error tipo real al restaurar base de datos
Previous Message Alvaro Herrera 2009-11-05 12:53:43 Re: Interpretar errores en log