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

Responder a