Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 1 mês atrás por passanha.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #77863
    Anônimo

      Olá, amigos!
      Gostaria de criar uma tabela de histórico, ou seja, quando houvesse um insert em determinada tabela, os novos valores iriam para a tabela tb, a tabela de histórico. Porém, dependendo da maneira que vc coloca o codigo em uma trigger, acontece o erro de tabela mutating, pois estou fazendo um select na mesma tabela que tem o trigger. Alguém tem uma sugestão de como resolver isso? O código que estou usando é mais menos o que está abaixo. Desde já agradeço. Obrigado, amigos!!

      CREATE OR REPLACE TRIGGER HIST_CONFIG
      AFTER INSERT ON CONFIGURACAO
      FOR EACH ROW
      DECLARE
      V_CODIGO NUMBER(7);
      V_NOME VARCHAR2(25);
      V_NLS NUMBER(7);
      BEGIN
      SELECT :NEW.CODIGO, :NEW.NOME, :NEW.NLS
      INTO V_CODIGO, V_NOME, V_COD_REGIAO
      FROM CONFIGURACAO
      WHERE CODIGO= :NEW.CODIGO;

      INSERT INTO HIST_CONFIG
      VALUES (V_CODIGO, V_NOME, V_NLS);
      COMMIT WORK;

      END;

      /

      #77865
      Anônimo

        Opá, uma pequena correção no código!!!

        CREATE OR REPLACE TRIGGER HIST_CONFIG
        AFTER INSERT ON CONFIGURACAO
        FOR EACH ROW
        DECLARE
        V_CODIGO NUMBER(7);
        V_NOME VARCHAR2(25);
        V_NLS NUMBER(7);
        BEGIN
        SELECT :NEW.CODIGO, :NEW.NOME, :NEW.NLS
        INTO V_CODIGO, V_NOME, V_NLS
        FROM CONFIGURACAO
        WHERE CODIGO= :NEW.CODIGO;

        INSERT INTO HIST_CONFIG
        VALUES (V_CODIGO, V_NOME, V_NLS);
        COMMIT WORK;

        END;

        /

        #77867
        passanha
        Participante

          FAZ ASSIM…

          CREATE OR REPLACE TRIGGER HIST_CONFIG
          AFTER INSERT ON CONFIGURACAO
          FOR EACH ROW
          DECLARE
          V_CODIGO NUMBER(7);
          V_NOME VARCHAR2(25);
          V_NLS NUMBER(7);
          BEGIN
          INSERT INTO HIST_CONFIG
          VALUES (:NEW.CODIGO, :NEW.NOME, :NEW.NLS);
          END;

          #77869
          passanha
          Participante

            OPS.. melhor, sem variavel…

            CREATE OR REPLACE TRIGGER HIST_CONFIG
            AFTER INSERT ON CONFIGURACAO
            FOR EACH ROW
            DECLARE
            BEGIN
            INSERT INTO HIST_CONFIG
            VALUES (:NEW.CODIGO, :NEW.NOME, :NEW.NLS);
            END;

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress