【发布时间】:2014-03-06 01:28:20
【问题描述】:
以下部分是我的触发器的相关部分
BEGIN SELECT rec_date
INTO lv_rec_date
FROM receipts_table
WHERE receipts_number = new.receipts_number
EXCEPTION WHEN NO_DATA_FOUND THEN
lv_partial := FALSE;
END;
问题是当它执行这部分时,我没有很好地捕获它,而是得到以下错误
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "APP.BEF_ROW_TRIGGER", line 66
ORA-04088: error during execution of trigger 'APP.BEF_ROW_TRIGGER'
这在 Oracle 10 及更低版本中运行良好。我检查了这个触发器的 USER_SOURCE 中的第 66 行正是 EXCEPTION WHEN NO_DATA_FOUND THEN 行。它似乎遇到了 NO_DATA_FOUND 错误,但错误捕获似乎不起作用。
Oracle 11g 中是否有任何我应该注意的变化?
【问题讨论】:
-
你能发布一个重现问题的测试用例吗? 11g 中似乎没有任何变化会导致这种行为。
-
没关系,虚惊一场^_^。错误出现在本节之后调用的过程的第 66 行,但错误消息显示它来自触发器。哎哟.....
标签: exception-handling triggers oracle11g