Warnungen
werden in der Java-Anwendung nicht über eine try/catch-Klausel
abgefangen, sondern sie müssen explizit abgerufen werden.
Dies geschieht durch Aufruf der Methode getWarnings().
Diese Methode ist in den Schnittstellen Connection, Statement,
CallableStatement sowie PreparedStatement
definiert. Warnungen, die das Erzeugen einer inkompatiblen Ergebnismenge
betreffen, können über die Statement-Exemplare abgerufen werden:
Connection con;
...
Statement stmt = con.createStatement();
// Hier Ausführen von SQL
...
// Prüfen, ob Warnungen vorhanden sind
SQLWarning warnung = stmt.getWarnings();
// Gibt es noch Warnungen?
while(warnung != null) {
// Ausgabe von Fehlermeldung und Fehlercodes
System.out.println(warnung.getMessage());
System.out.println("ANSI-92 Code: "+warnung.getSQLState());
System.out.println("Oracle Code: "+warnung.getErrorCode());
// Nächste Warnung abrufen.
warnung = warnung.getNextWarning();
}
...
getWarnings() liefert ein Exemplar der Klasse SQLWarning zurück.
SQLWarning enthält dieselben Methoden zum Abfragen von Fehlermeldungen und Fehlercodes wie
die Klasse SQLException auch. Genau wie bei
SQL Exceptions können auch mehrere SQL-Warnungen verkettet vom
Treiber zurückgeliefert werden.
Bei SQL-Warnungen verwendet man die Methode getNextWarning(), die jeweils das
nächste SQLWarning-Exemplar zurückliefert oder null, wenn bereits alle Warnungen
abgerufen wurden.