Ich möchte eine gespeicherte Funktion mehrmals im Batch aufrufen. Ich benutze JOOQ 3.7.3 und PostgreSQL 9.5. Ich habe versucht, mit select [function call]
Anweisung im Batch, aber es löst die folgende Ausnahme PSQLException: A result was returned when none was expected
.Wie rufen Sie eine gespeicherte Funktion im Batch mit JOOQ auf?
// exemplary 'select [function call]'
context.batch(context.select(Routines.foo(someParam))).execute();
Ich habe keine andere Möglichkeit gefunden, gespeicherte Funktionen mit JOOQ im Batch aufzurufen. Ich weiß, dass es mit rohen JDBC mit CallableStatement möglich ist, also nehme ich an, dass es auch mit JOOQ möglich sein sollte.
Ist es mit JOOQ möglich, gespeicherte Funktionen im Batch aufzurufen? Wenn ja, wie geht das?
gespeicherte Funktion Unterschrift:
create function foo(param1 int, param2 int) returns boolean as $$ ... $$ language plpgsql
Können Sie die Signatur Ihrer Funktion (in pgplsql) posten? –
@LukasEder getan, ich habe auch versucht, 'boolean' Wert zurückzugeben, es scheint, dass das Problem ist, dass jdbc nicht mit gespeicherten Funktionsaufrufen umgehen kann, wenn es nicht von der speziellen 'Call'-Syntax mit CallableStatement behandelt –