-- FORM /REPORT 例外处理 实现方法:
BEGIN
《PL/SQL块》;
Exception
when no_data_found then --没有找到数据
《响应命令》;
when too_many_rows then --返回多行,隐式光标每次只能检索一行数据
《响应命令》;
when invalid_number then --字符向数字转换失败
《响应命令》;
when zero_divide then --被零除
《响应命令》;
when dup_val_on_index then --向唯一索引中插入重复数据
《响应命令》;
when invalid_cursor then --非法游标操作
《响应命令》;
when value_error then --数字的,数据转换,截字符串或强制性的错误
《响应命令》;
when others then --发生其它任何错误
null; --选择一:什么也不做,就当错误没发生
raise form_trigger_failure; --选择二:挂起当前程序
END;
----trigger 例外处理---------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
declare
error_msg VARCHAR2(250);
begin
《PL/SQL块》;
EXCEPTION
WHEN OTHERS THEN
error_msg := 'WSHR_LEAVE_HOLS_HEADERS_T1' || substrb(SQLERRM, 1, 60);
raise_application_error(-20500, error_msg);
end;
----report 等程式 例外处理---------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
declare
err_num VARCHAR2(100);
err_msg VARCHAR2(500);
begin
《PL/SQL块》;
exception
when others then
err_num := SQLCODE; --可直接使用
err_msg := SUBSTR(sqlerrm, 1, 500); --可直接使用
fnd_file.put_line(fnd_file.log, err_num||' '||err_msg); --可直接使用
fnd_file.put_line(fnd_file.log,'error1!'); --可直接使用
end;
SQLCode:数据库操作的返回码,其中0 --成功;
-1 --失败;
100--没有检索到数据