Hallo,
ich bin nicht sicher, aber ich vermute ein Konfigurations-Problem, und ich finde einfach nicht heraus, wo es liegt.
Laut Doku sollte es seit Postgres 11 möglich sein, in einer Funktion/Prozedure ein “commit” auszuführen. Leider geht das bei mir nicht. Ich habe zum testen mal eine Prozedur angelegt:
CREATE OR REPLACE PROCEDURE public.committest()
LANGUAGE plpgsql
AS $procedure$
declare
test bigint;
BEGIN
select id into test from "AUTH".info;
commit;
END;
$procedure$
;
Wenn ich dann mit
call public.committest();
den Aufruf mache (egal ob in psql oder dbeaver, ohne darin eine transaktion zu starten), bekomme ich eine Fehlermeldung:
SQL-Fehler [2D000]: ERROR: invalid transaction termination
Wobei: PL/pgSQL function committest() line 6 at COMMIT
Lokal funktioniert es bei mir auch, aber auf dem ubuntu-server nicht. Deswegen vermute ich einen konfigurationsproblem. Ich habe aber keine idee, was man wo konfigurieren könnte.