Pessoal, Bom dia!
Tenho a trigger abaixo, na qual eu seleciono alguns dados de duas tabelas (conforme cursor) e insiro em um terceira tabela. Mas antes e inserir nessa tabela eu deleto os dados existentes nela que são iguais aos que eu estou inserindo. Até ai tudo bem, na lógica deveria funcionar, mas ao fazer alguns testes verifiquei que ao inserir 3 linhas das tabelas do cursor a trigger insere também na tabela de destino, mas se por alguma motivo eu precise inserir uma quarta linha para o mesmo boletim, a trigger deleta as linhas correspondentes ao boletim na tabela de destino e só insere a ultima linha que foi inserido na tabela. O que eu estou fazendo de errado, pois a trigger deveria deixar inserir as 4 linhas e não só a ultima. CREATE OR REPLACE TRIGGER "PIMSCS"."ATU_SISMA_PRDEQ_APTMEC_DE" AFTER INSERT ON "PIMSCS"."APT_MEC_DE" FOR EACH ROW DECLARE V_DATA DATE; V_EMP NUMBER(3) := 3; V_ESP NUMBER(3) := 1; V_OPER NUMBER(5); V_EQUIP NUMBER(8); V_PRD_TON NUMBER(13) := 0; V_PRD_HA NUMBER(8,3); v_boletim number(10); V_BOL_SISMA NUMBER(10); CURSOR C1 IS SELECT :NEW.NO_BOLETIM,B.DT_OPERACAO,:NEW.CD_OPERACAO,B.CD_EQUIPTO,:NEW.QT_PROD_EXEC FROM DUAL, APT_MEC_HE B WHERE :NEW.FG_TP_APTO='M' AND :NEW.FG_TP_APTO=B.FG_TP_APTO AND :NEW.NO_BOLETIM=B.NO_BOLETIM AND :NEW.INSTANCIA=B.INSTANCIA aND B.CD_EQUIPTO IN (SELECT CD_EQUIPTO FROM EQUIPTOS WHERE FG_TP_EQUIP=1 AND CD_EQUIPTO=B.CD_EQUIPTO) AND :new.CD_CCUSTO IN (SELECT CD_CCUSTO FROM CCUSTOS WHERE CD_CCUSTO <> '999999999'); BEGIN delete from sisma_prod_equip where no_boletim = :new.no_boletim; OPEN C1; FETCH C1 INTO V_BOLETIM,V_DATA,V_OPER,V_EQUIP,V_PRD_HA; if v_data is not null then INSERT INTO SISMA_PROD_EQUIP (DATA,OPERACAO,ESPECIE,EMPRESA,CD_EQUIPTO,PROD_TON,PROD_HA,NO_BOLETIM) VALUES (V_DATA,V_OPER,V_ESP,V_EMP,V_EQUIP,V_PRD_TON,V_PRD_HA,V_BOLETIM); end if; close c1; END; _______________________________________________________ Luciano Santos _______________________________________________________ [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html