-- CREAR TABLA DONDE ALMACENARAN LOS LOGS DE ERRORES
CREATE TABLE CAUGHT_ERRORS
(
DT DATE,
USERNAME VARCHAR2(30 BYTE),
MSG VARCHAR2(2000 BYTE),
STMT VARCHAR2(2000 BYTE)
);
--CREAR TRIGGER
CREATE OR REPLACE TRIGGER catch_errors
after servererror on database
declare
sql_text ora_name_list_t;
msg_ varchar2(2000) := null;
stmt_ varchar2(2000) := null;
begin
for depth in 1 .. ora_server_error_depth loop
msg_ := msg_ || ora_server_error_msg(depth);
end loop;
for i in 1 .. ora_sql_txt(sql_text) loop
stmt_ := stmt_ || sql_text(i);
end loop;
insert into
caught_errors (dt , username ,msg ,stmt )
values (sysdate, ora_login_user,msg_,stmt_);
end;