Warum bekomme ich eine Fehlermeldung, dass "ein Ergebnis nicht erwartet wurde", wenn gespeicherte Prozeduren auf PostgreSQL von Java in einem Stapel ausgeführt werden?

8

Ich habe diese Prozedur in der Datenbank:

%Vor%

Und dieser Code, der diese Funktion aufruft:

%Vor%

Wenn ich den Stapel ausführe, werden die Werte in die Tabelle eingefügt oder ersetzt, aber danach bekomme ich eine Ausnahme mit dem Hinweis, dass A result was returned when none was expected.

Ich weiß nicht was falsch ist, wenn ich die Prozedur oder die Prozedur selbst anrufe. Was kann das Problem sein und wie kann man es lösen?

Rufen Sie eine Prozedur mit SELECT ist der richtige / einzige Weg?

    
Renato Dinhani 02.09.2011, 03:29
quelle

1 Antwort

6

Nach dem, was ich sagen kann, verwenden Sie SELECT , wenn call verwendet werden soll.

Ein Beispiel aus der PostgreSQL-Dokumentation auf der JDBC-Oberfläche :

%Vor%

Beachten Sie, dass die Syntax ? = call für das Ergebnis in Ihrem Fall nicht erforderlich ist - Sie möchten nur call replacePageRelevance(?,?::REAL)

verwenden

Der Grund, dass diese Syntax sich von PostgreSQL unterscheidet, ist, dass dies Teil der JDBC-Spezifikation .

    
Paul Bellora 02.09.2011, 03:43
quelle