Cómo ejecutar sentencias DDL dentro un trigger de Oracle

Sunday, January 1, 2012 18:41
Posted in category Oracle

Si necesitas realizar un COMMIT, un SAVEPOINT, una sentecia DDL  (create, alter, …) dentro de un trigger lo más seguro es que recibas algún mensaje de error.

Nada tan sencillo como utilizar la sentencia PRAGMA AUTONOMOUS_TRANSACTION para que la ejecución funcione perfectamente.

Un ejemplo de la sintaxis:

CREATE OR REPLACE TRIGGER XX_TRIGGERNAME_BIR
BEFORE INSERT
ON XXTABLE
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
V_VARIABLE NUMBER;
 
BEGIN
...
COMMIT;
END;
You can leave a response, or trackback from your own site.

Leave a Reply