我有一张有几个索引的桌子。在我的应用程序代码中,可能存在违反这些索引的实例,这取决于用户的输入。
当我的PL/SQL代码无意中遇到ORA-00001时,我想准确地记录哪个索引被违反了。
是否有一种方法可以知道哪个索引违规导致甲骨文引发dup_val_on_index?
发布于 2016-09-05 11:17:12
可以通过以下方式实现这一目标:
BEGIN
-- code containing INSERT operation
EXCEPTION
WHEN dup_val_on_index THEN
Trace_SYS.Message(substr(sqlerrm, instr(sqlerrm, '(')+1,
instr( sqlerrm, ')') - instr( sqlerrm,'(') -1 ));
END;发布于 2018-05-09 21:06:27
Oracle的备用表达式是从正则表达式开始实现的。
https://dba.stackexchange.com/questions/148828
复制相似问题