› Fóruns › Banco de dados Oracle › Dropar Trigger › Dropar Trigger
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;