如何摆脱 Java 中捕获的所有自定义 Oracle 错误消息开头的 Oracle 错误代码?
String r = errorMessage.replaceFirst("^ORA-\\d+:?\\s?", "");
有更好的方法吗?
Oracle 还在我漂亮的错误消息中添加了一些垃圾,因此后面是
ORA-06512: at "MY_SERVER.PKG_TEST", line 470
ORA-06512: at "MY_SERVER.PKG_TEST", line 406
ORA-06512: at "MY_SERVER.PKG_TEST", line 611
ORA-06512: at "MY_SERVER.PKG_TEST", line 643
最佳答案
ORA
错误始终为 ORA + 5 位数字
,例如
SQL> select 1
2 from emp
3 where deptno = (select deptno from dept);
where deptno = (select deptno from dept)
*
ERROR at line 3:
ORA-01427: single-row subquery returns more than one row
SQL>
ORA-01427
就是其中之一。这意味着 - 如果您知道如何(我不知道,因为我不会说 Java),请删除前 9 个字符(或 11,以删除 :
和一个空格)就这样了。例如,在 Oracle 中使用 substr
:
SQL> select substr('ORA-01427: single-row subquery returns more than one row', 12) result from dual;
RESULT
---------------------------------------------
single-row subquery returns more than one row
SQL>
换句话说,不需要复杂正则表达式。
关于java - 如何从Java中的错误消息中去除Oracle错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61372719/