Este ejemplo fue probado en Oracle 10. Creamos un savepoint sp1. Luego creamos un savepoint sp2. Hacemos un rollback al savepoint sp2. Entonces hacemos otro rollback al savepoint sp1. Éste es posible porque el savepoint sp1 ya existía cuando el savepoint sp2 fue creado:
SQL> create table nombres
2 (nombre1 varchar2(10))
3 /
Tabla creada.
SQL> insert into nombres values ('Andrew')
2 /
1 fila creada.
SQL> select * from nombres
2 /
NOMBRE1
----------
Andrew
SQL> savepoint sp1
2 /
Punto de grabacion creado.
SQL> update nombres set nombre1 = 'Brian'
2 /
1 fila actualizada.
SQL> select * from nombres
2 /
NOMBRE1
----------
Brian
SQL> savepoint sp2
2 /
Punto de grabacion creado.
SQL> update nombres set nombre1 = 'Colin'
2 /
1 fila actualizada.
SQL> select * from nombres
2 /
NOMBRE1
----------
Colin
SQL> rollback to savepoint sp2
2 /
Rollback terminado.
SQL> select * from nombres
2 /
NOMBRE1
----------
Brian
SQL> rollback to savepoint sp1
2 /
Rollback terminado.
SQL> select * from nombres
2 /
NOMBRE1
----------
Andrew
SQL>
No hay comentarios:
Publicar un comentario