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
