SET serverOutput ON;--开启当前控制台输出SET autoCommit OFF;--关闭当前会话事务自动提交
DECLARE
BEGINFOR n_i IN reverse 1..5
LOOP
dbms_output.put_line('你好:'||n_i);END LOOP;
raise no_data_found;
--COMMIT; --提交事务
EXCEPTION
WHEN login_denied THEN --登录验证失败ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN too_many_rows THEN --单条子句查询返回多条记录ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN no_data_found THEN --查询没有返回记录ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN zero_divide THEN --除于 0 错误ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN value_error THEN --转换或截断错误ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN invalid_number THEN --转换一个数字失败ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN program_error THEN --内部错误ROLLBACK;
dbms_output.put_line('已回滚');
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
WHEN OTHERS THEN --其它错误
dbms_output.put_line('sqlCode:'||SQLCODE);
dbms_output.put_line(sqlErrM);
ROLLBACK;END;