我必须在我的应用程序中处理ORA-28011和ORA-28002。但这些ORA警告被JDBC压制(我认为) 我怎样才能在Java中捕获这些? 有什么JDBC属性吗?
我不希望从dba_users
表直接查询状态。
谢谢!
答案 0 :(得分:4)
它们不被JDBC抑制。您可以使用Connection#getWarnings()
(Connection
- 相关警告)来检索数据库报告的第一个警告,然后使用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()
。