On Mon, Oct 17, 2005 at 12:50:29PM +0100, Yogaraj. C wrote:
> When I was executing the procedure (with Transaction), postgres will
> producing the following error.
>
> ERROR: SPI_prepare() failed on "START TRANSACTION"
> CONTEXT: PL/pgSQL function "sp_example1" line 4 at SQL statement
http://www.postgresql.org/docs/7.4/interactive/plpgsql-structure.html
"Functions and trigger procedures are always executed within a
transaction established by an outer query --- they cannot start or
commit transactions...."
> If anyone know the solution for this, pleas help me.
What problem are you trying to solve? PostgreSQL 8.0 introduced
savepoints, which you can use in PL/pgSQL via an EXCEPTION clause:
http://www.postgresql.org/docs/8.0/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
Another possibility might be to use dblink to make another connection
to the database from within the function and execute transactions
over that connection.
--
Michael Fuhr