我有一个包含多个索引的表。在我的应用程序代码中,可能会出现违反这些索引中的任何一个的情况,具体取决于用户输入。
当我的 PL/SQL 代码偶然发现一个ORA-00001
.
有没有办法知道哪个索引违规导致 Oracle 引发dup_val_on_index
?
我有一个包含多个索引的表。在我的应用程序代码中,可能会出现违反这些索引中的任何一个的情况,具体取决于用户输入。
当我的 PL/SQL 代码偶然发现一个ORA-00001
.
有没有办法知道哪个索引违规导致 Oracle 引发dup_val_on_index
?
AskTom 已经对此进行了讨论。
这可以通过以下方式实现:
自正则表达式以来,Oracle 的替代表达式已经实现
REGEXP_REPLACE(SQLERRM, '.*\((.*)\).*','\1')