Comportamiento extraño de UPDATE
Publicado por jjespada (2 intervenciones) el 20/09/2011 13:56:58
Buenas a todos.
Tengo un código como el que sigue, el cual intenta actualizar un registro, y si no lo encuentra, lo inserta dentro de la excepción NO_DATA_FOUND. Lo estoy probando contra una tabla vacía, y sin embargo, ejecuta el UPDATE y pasa a incrementar el contador, cuando debería haber saltado la excepción.
Si ejecuto una select de comprobación antes del update, con el mismo filtro, la excepción salta correctamente, lo que me tiene despistado.
Muchas gracias.
Tengo un código como el que sigue, el cual intenta actualizar un registro, y si no lo encuentra, lo inserta dentro de la excepción NO_DATA_FOUND. Lo estoy probando contra una tabla vacía, y sin embargo, ejecuta el UPDATE y pasa a incrementar el contador, cuando debería haber saltado la excepción.
Si ejecuto una select de comprobación antes del update, con el mismo filtro, la excepción salta correctamente, lo que me tiene despistado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DECLARE
vcontador INTEGER:=0;
BEGIN
UPDATE tabla SET
campo=valorcampo
WHERE (tabla.id=valorid);
vcontador:=vcontador+1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO TABLA(CAMPO) VALUES(valorcampo);
END;
Muchas gracias.
Valora esta pregunta


0