2

我必须在我的应用程序中处理 ORA-28011 和 ORA-28002。但是这些被 JDBC 抑制的 ORA 警告(我认为)
我怎样才能在 Java 中捕捉到这些?
有什么 JDBC 属性吗?

我不喜欢直接从dba_users表中查询状态。

谢谢你!

4

1 回答 1

4

它们不受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().

参考:

于 2012-09-26T12:25:20.393 回答