Ich rufe eine Oracle Stored Procedure von Java an, und habe kein Problem, Eingangsparameterwerte zu senden und die Ausgangsparameterwerte zurück an Java zu senden, sobald ich die CallableStatement
ausführe.Gespeicherte Prozedur von Java aufrufen - Ausnahme nicht bei ORA-Fehler ausgelöst
Allerdings, wenn ich ein paar schlechten Daten in die Stored Procedure senden (um einen Fehler zu erzwingen) und führen Sie die CallableStatement
‚s execute
Methode, würde ich erwarten, dass ein SQLException
in meiner Methode geworfen werden. Dies passiert nicht und der Code wird normal fortgesetzt.
Wenn ich die Stored Procedure über SQL Developer ausführen, kann ich deutlich eine Oracle-Fehlermeldung (Code ORA-06502
) im Log-Fenster angezeigt. Daher ist es für mich ein Rätsel, warum mein Java-Code keine Fehlermeldung erfasst.
Hat jemand eine Idee, was die Quelle dieses Verhaltens ist? Führt die gespeicherte Prozedur den Fehler nicht korrekt aus; ist das Java try/catch
nicht erkennen, die Ausnahme ausgelöst? Leider habe ich keinen Zugriff auf den Stored Proc-Code, um zu überprüfen, wie sie mit Fehlern umgehen.
Alle Zeiger sind willkommen.
Ich glaube nicht, dass eine SQLException geworfen wird Uness die gespeicherte proc wird explizit zu tun codiert. https://community.oracle.com/thread/129500?start=0&tstart=0. Es besteht kein Zweifel, dass die JVM es abfangen wird, wenn eine Ausnahme ausgelöst wird. – duffymo
Zeigen Sie uns den Code der Prozedur und den Java-Code, die die Prozedur aufrufen – Dazak