Ver la Versión Completa : savepoint en oracle
alguien ha usado un savepoint (PL/SQL), me puede explicar mas al respecto???.
Gracias..:confused:
delphi.com.ar
19-08-2003, 17:01:10
La idea de los SavePoints es manejar por pasos las transacciones, pudiendo hacer rollbacks hasta un punto marcado por el savepoint y no por toda la sesión.
INSERT INTO ...;
SAVEPOINT A;
UPDATE ....;
SAVEPOINT B;
INSERT INTO ...;
SAVEPOINT C;
IF .... THEN
ROLLBACK TO B;
ELSE
COMMIT;
END;
Digamos que el ejemplo no es nada útil, pero la idea es demostrar la funcionalidad de los savepoints.
Saludos!
pero por ejemplo en la sentencia IF....THEN como podria preguntar que las ordenes Sql anteriores se hallan ejecutado bien???..
Gracias
delphi.com.ar
19-08-2003, 22:51:27
Cuando una consulta no se ejecuta bien, esta produce un error. Para eso te recomiendo investigar la captura de errores de PLSQL, es muy parecida a ADA.
Básicamente cada bloque (begin..end), puede capturar errores.. Ej:
[CODE]
FUNCTION GET_ALGO(AId IN NUMBER) RETURN NUMBER AS
nResult NUMBER;
BEGIN
SELECT ...
INTO nResult
FROM TABLA
WHERE ID = AId;
RETURN nResult;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN -1;
END;
Y se podrían anidar bloques dentro de este, con sus respectivas capturas de errores.
Saludos!
existe alguna dirección donde salga algun ejemplo mas concreto respecto a los Savepoint.... donde pueda sacar la manera de implementarlo??, he leido bastante pero no se como implementarlo en un caso practico..
Gracias de antemano..
delphi.com.ar
21-08-2003, 17:12:53
Te digo que prácticamente en los últimos 5 años no los he usado nunca... recuerdos haberlos usado en la época del sqlplus, cuando uno iba probando algo y si fallaba quería deshacer los cambios hasta tal punto... Pero dentro de un procedure, evito utilizar transacciones, a no ser que sea un proceso muy grande.
Si deseas buscar ejemplos, en oracle.com no deben faltar.
Saludos!
con eso me queda claro..
Gracias..
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.