Oracle 过程 Exception
代码片段SET serverOutput ON;--开启当前控制台输出SET autoCommit OFF;--关闭当前会话事务自动提交DECLAREBEGINFOR n_i IN reverse 1..5LOOPdbms_output.put_line('你好:'||n_
·
- 代码片段
SET serverOutput ON; --开启当前控制台输出
SET autoCommit OFF; --关闭当前会话事务自动提交
DECLARE
BEGIN
FOR 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;更多推荐




所有评论(0)