begin
sql1;
sql2;
sql3;exception
when others then
rollback;
end
这是一种存储过程捕获异常的方法,
第一个问题:我想请教下 还有没有其他的方法捕获异常。
第二个问题:如果采用上面的方法,如果SQL1语句执行就出现问题,是直接跳到EXCEPTION里面捕获异常然后回转呢 还是需要执行完SQL2与SQL3语句之后 然后执行EXCEPTION 不明白这种捕获异常机制是什么样的
sql1;
sql2;
sql3;exception
when others then
rollback;
end
这是一种存储过程捕获异常的方法,
第一个问题:我想请教下 还有没有其他的方法捕获异常。
第二个问题:如果采用上面的方法,如果SQL1语句执行就出现问题,是直接跳到EXCEPTION里面捕获异常然后回转呢 还是需要执行完SQL2与SQL3语句之后 然后执行EXCEPTION 不明白这种捕获异常机制是什么样的
除非,你寫成這樣
begin
begin
sql1;
exception
end; begin
sql2;
exception
end; begin
sql3;
exception
end;
end;
begin
sql1;
sql2;
sql3;
while i<100
loop
sql4;
sql5;
sql6;
end loop;
exception
when others then
rollback;
如果第SQL4条语句出现问题 我上面的这种写法 能把整个存储过程ROLLBACK了不 他还继续执行SQL5与sql6 语句不
sql1;
sql2;
sql3;
commit;
exception
when others then
rollback;
end
这样的话 只要COMMIT就是修改数据库了 ROLLBACK就没什么意义了
是不是 INSERT INTO
UPDATE TABLE SET 语句
insert, update, delete是DML