In PGADMIN4 POSTGRESQL10.14 how to add EXCEPTION clause

293 views Asked by At

I get the following error, can someone give me an example to avoid it:

ERROR:  cannot begin/end transactions in PL/pgSQL
HINT:  Use a BEGIN block with an EXCEPTION clause instead.
CONTEXT:  PL/pgSQL function transfer(integer,integer,numeric) line 13 at SQL statement
PL/pgSQL function inline_code_block line 2 at EXECUTE
SQL state: 0A000
START TRANSACTION;
    DO
    $$BEGIN
     EXECUTE transfer(1,2,1000);
    END$$;
COMMIT TRANSACTION;
1

There are 1 answers

0
Jonathan Jacobson On

In PostgreSQL version 10, it is not possible to run transaction control commands (COMMIT, ROLLBACK) inside a stored function.

Either take the transaction control statement out of the stored function (line 13 of the transfer() function) or upgrade to a newer PostgreSQL release and turn the function into a stored procedure.