Ejecutar sentencias fuera de transaccion en una función

From: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Ejecutar sentencias fuera de transaccion en una función
Date: 2009-11-05 11:37:13
Message-ID: FD53A97857074167A983B784B7956B16@Principal
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

__________ Information from ESET NOD32 Antivirus, version of virus signature database 4566 (20091102) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-11-05 12:53:43 Re: Interpretar errores en log
Previous Message Raúl Andrés Duque Murillo 2009-11-05 03:28:26 Re: Error tipo real al restaurar base de datos