アプリで ORA-28011 と ORA-28002 を処理する必要があります。しかし、これらの ORA 警告は JDBC によって抑制されています (私が思うに)
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()
。