Pular para o conteúdo

Fóruns SQL e PL/SQL Trigger Só Executa Primeiro Bloco do Programa Trigger Só Executa Primeiro Bloco do Programa

#92303
Girino
Participante

    Olá Burga..!! 8)
    Tudo Bem?

    Ai volta no erro anterior de Mutant Trigger..!! 😥 😥 😥

    Veja:

    PROCEDURE:

    CREATE OR REPLACE PROCEDURE P_ATUALIZA_SH_PCWMSOUTPUT
    IS

    PRAGMA AUTONOMOUS_TRANSACTION;

    BEGIN

    BEGIN
    FOR R IN (SELECT TIPO,
    NUMERO,
    CODPROD,
    CODCLI,
    CODFORNEC,
    CODFILIAL,
    QTSEP,
    QTREC,
    QTAVA,
    QTCOR,
    DTEMISSAO,
    SEMAFORO,
    DTPROCESSAMENTO,
    NUMLOTE,
    DTFABRICACAO,0
    FROM PCWMSOUTPUT
    WHERE TIPO = ‘E’AND SEMAFORO = ‘1’)
    LOOP
    INSERT INTO “sh_pcwmsoutput”@logixteste VALUES (R.TIPO,
    R.NUMERO,
    R.CODPROD,
    R.CODCLI,
    R.CODFORNEC,
    R.CODFILIAL,
    R.QTSEP,
    R.QTREC,
    R.QTAVA,
    R.QTCOR,
    R.DTEMISSAO,
    R.SEMAFORO,
    R.DTPROCESSAMENTO,
    R.NUMLOTE,
    R.DTFABRICACAO,0);
    END LOOP;
    COMMIT;
    END;

    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;

    END;


    TRIGGER:

    CREATE OR REPLACE TRIGGER T_INSERT_SH_PCWMSOUTPUT
    AFTER INSERT ON PCWMSOUTPUT FOR EACH ROW

    BEGIN

    begin
    — Call the procedure
    p_atualiza_sh_pcwmsoutput;
    end;

    BEGIN
    UPDATE PCWMSOUTPUT
    SET SEMAFORO = 3
    WHERE TIPO = ‘E’ AND SEMAFORO = 1;
    COMMIT;
    END;

    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;

    END;

    [url=http://img210.imageshack.us/i/errooracle2.jpg/:21j5suip]