No sé como hacer un procedimiento transaccional

Juan Carlos
28 de Octubre del 2005
Hola gente! Estoy con una aplicación java que utiliza Una BBDD de oracle. En la aplicacion necesito hacer una serie de operaciones en la BBDD que sean transaccionales, es decir, si hay algún problema en alguna de las sentencias lanzadas que me retorne al estado inicial de las tablas. He creado un procedure con la extension PRAGMA AUTONOMOUS_TRANSACTION, pero siempre encuentra un error y me hace un rollback, aunque las operaciones en las tablas me las puede hacer. No sé que otra forma hacerlo, si me podéis echar una mano, os lo agradecería muchísmo. Muchas gracias a todos

monky
28 de Octubre del 2005
Las transacciones en cualquier motor se trabajan de la siguiente manera :

En el procedimiento almacenado comenzar con
BEGIN TRAN

Luego van las sentencias DML insert, update o delete

Manejas las excepciones en caso de error con
EXCEPTION
Si hay error haces un
ROLLBACK

Si todo OK
COMMIT
END

Esa es la forma de manejar las transacciones

Espero te sirva de guia.... en todo caso en la web hay bastante informacion ... busca transacciones en oracle

Suerte

Juan Carlos
28 de Octubre del 2005
El problema no es la estructura del procedimiento, sino el funcionamiento del mismo, porque no se si el procedimiento al no poder hacer alguna transaccion te hace un rollback el solo, o lo tienes que hacer tu... Lo que yo he hecho ha sido simplemente un par de deletes y el fallo que me da es que se ha hecho un rollback por que se ha encontrado una transaccion activa, cuando si se pueden hacer las transacciones perfectamente. Y esto me salta siempre. Y para que no me salte el rollback tengo qeu hacer un commit dentro. Yo creo que en un procedmineto ya viene implicito un rollback si da algun fallo, y un commit si todo va bien...pero no estoy seguro.Ayuda plis....