Pessoal, preciso de uma ajuda com funções.
Preciso fazer uma função que lê vários registros de uma tabela e processa a
informação, mas preciso fazer isso com controle de transação, já tentei de
tudo mas nada deu certo, o rollback não funciona de jeito nenhum.
DECLARE
v_linhas RECORD;
vlin varchar(1);
vtrans varchar[];
BEGIN
RAISE NOTICE 'Refreshing materialized views...';
begin
start TRANSACTION;
FOR v_linhas IN SELECT * FROM imp_arquivos_linhas ORDER BY id_linha LOOP
delete from imp_arquivos_linhas where id_arquivo =
v_linhas.id_arquivo and id_linha = v_linhas.id_linha;
IF substring(v_linhas.linha,4,1) = '0' then
--SAVEPOINT sv;
elseif substring(v_linhas.linha,4,1) = '9' then
commit;
elseif substring(v_linhas.linha,5,4) = 'TIT1' then
perform processa_titular(v_linhas.linha);
elseif substring(v_linhas.linha,5,3) = 'OBM' then
raise exception '' ;
END IF;
END LOOP;
EXCEPTION
WHEN others THEN
ROLLBACK ; --TO SAVEPOINT sv;
end;
RETURN ;
END;
isso foi o mais proximo do que preciso mas o rollback nao rola
Silfar Goulart
Enviado com MailTrack
<https://mailtrack.io/install?source=signature&lang=pt&[email protected]&idSignature=24>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral