Em 6 de fevereiro de 2015 14:07, Danilo Silva <[email protected]>
escreveu:

> Pessoal,
>
> Tenho a seguinte função:
> CREATE OR REPLACE FUNCTION f_baixa_manifesto() RETURNS text AS
> $$
> DECLARE
> variaveis...
> BEGIN
> FOR ... LOOP
> /* iniciar transação */
> FOR ... LOOP
> instruções de inserts e updates... */
> END LOOP;
> /* fim da transação, executando um commit ou rollback */
> END LOOP;
> RETURN ...;
> END;
> $$
> LANGUAGE plpgsql;
>
> Como posso inciar uma transação dentro de um loop? Sendo que ao final do
> loop irei executar um commit ou rollback. Tentei utilizar um "begin work"
> mas deu erro de sintaxe.
>
>
Não pode. O que você pode é criar um bloco de EXEPTION para tratar um
bloco. Mas COMMIT e ROLLBACK nunca. Esta é uma limitação conhecida do
Postgres, não vejo acho que isso deve mudar no futuro.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a