Pular para o conteúdo

Fóruns Banco de dados Oracle Dropar Trigger Dropar Trigger

#86122
rodrigobonela
Participante

    Cara, essa aqui é a bendita da trigger…
    Estes dias eu até tava perguntando como que eu a faria…
    Comecei a fazer e dai outro desenvolvedor a “terminou” rsrs…


    CREATE OR REPLACE TRIGGER trc_audit_owner
    AFTER ALTER ON .SCHEMA
    DECLARE
    w_cod_owner NUMBER;
    w_name_owner VARCHAR2(50);
    w_name_usuario VARCHAR2(50);
    w_cod_objeto NUMBER;
    w_nome_objeto VARCHAR2(50);
    w_tipo_objeto VARCHAR2(30);
    w_nome_coluna VARCHAR2(50);
    w_tipo_coluna VARCHAR2(10);
    w_tam_coluna NUMBER;
    w_data_modif DATE;
    w_ocor_ocorrencia VARCHAR2(50);
    w_ocor_comando VARCHAR2(20);
    w_cod_erro NUMBER;
    w_mensagem VARCHAR2(50);

    BEGIN LOOP
    BEGIN

          SELECT DISTINCT
                 u.user#,
                 u.name,
                 s.osuser,
                 o.obj#,
                 o.name,
                 uo.object_type,
                 c.cname,
                 c.coltype,
                 c.width,
                 o.mtime
            INTO w_cod_owner,        
                 w_name_owner,    
                 w_name_usuario,
                 w_cod_objeto,    
                 w_nome_objeto,   
                 w_tipo_objeto,   
                 w_nome_coluna,   
                 w_tipo_coluna,   
                 w_tam_coluna,    
                 w_data_modif    
            FROM SYS.obj$ o,
                 SYS.col  c,
                 SYS.user$ u,
                 v$session s,
                 user_objects uo
           WHERE o.mtime    = (SELECT MAX(co.mtime) 
                                 FROM sys.obj$ co
                                WHERE co.owner# = 38)
             AND c.tname(+) = o.name
             AND o.owner#   = u.user#
             AND s.USER#    = u.user#
             AND o.obj#     = uo.object_id;
                 dbms_output.put_line ('1');
     EXCEPTION
         WHEN OTHERS THEN
              NULL;
     END;
     BEGIN       
          INSERT INTO AUDIT_OWNER
                 VALUES (w_cod_owner,   
                         w_name_owner,  
                         w_name_usuario,
                         w_cod_objeto,  
                         w_nome_objeto, 
                         w_tipo_objeto, 
                         w_nome_coluna, 
                         w_tipo_coluna, 
                         w_tam_coluna,  
                         w_data_modif); 
     COMMIT;
     EXCEPTION
         WHEN OTHERS THEN
              NULL;
     END;
     END LOOP;
    

    EXCEPTION
    WHEN OTHERS THEN
    NULL;

    END;