我必须在我的应用程序中处理 ORA-28011 和 ORA-28002。但是这些被 JDBC 抑制的 ORA 警告(我认为)
我怎样才能在 Java 中捕捉到这些?
有什么 JDBC 属性吗?
我不喜欢直接从dba_users
表中查询状态。
谢谢你!
它们不受JDBC 抑制。您可以使用Connection#getWarnings()
( Connection
-related warnings) 检索数据库报告的第一个警告,然后SQLWarning#getErrorCode()
用于获取引发的供应商特定警告代码,对于 Oracle JDBC 驱动程序,该代码将为您提供ORA
编号:
Connection connection;
// ...
SQLWarning warn = connection.getWarnings();
int errorCode = warn.getErrorCode();
if (errorCode == 28011) {
// ORA-28011
} else if (errorCode == 28002) {
// ORA-28002
}
如果您想获取更多警告,请使用SQLWarning#getNextWarning()
.