-
Notifications
You must be signed in to change notification settings - Fork 1
packages tree.create_dml_tables
Jan Kvetina edited this page Sep 27, 2020
·
2 revisions
Repository spec: tree.purge_old
,
body: tree.purge_old
PROCEDURE create_dml_tables (
in_table_like logs.module_name%TYPE
);
Show code (38 lines)
PROCEDURE create_dml_tables (
in_table_like logs.module_name%TYPE
) AS
BEGIN
tree.log_module(in_table_like);
-- process existing data first
process_dml_errors(in_table_like); -- it calls tree.process_dml_error
-- drop existing tables
tree.drop_dml_tables(in_table_like);
-- create DML log tables for all tables
FOR c IN (
SELECT
t.table_name AS data_table,
t.table_name || tree.dml_tables_postfix AS error_table
FROM user_tables t
WHERE t.table_name LIKE UPPER(in_table_like)
) LOOP
tree.log_debug(c.data_table, c.error_table);
--
DBMS_ERRLOG.CREATE_ERROR_LOG (
dml_table_name => USER || '.' || c.data_table,
err_log_table_owner => tree.dml_tables_owner,
err_log_table_name => c.error_table,
skip_unsupported => TRUE
);
--
IF tree.dml_tables_owner != USER THEN
EXECUTE IMMEDIATE
'GRANT ALL ON ' || tree.dml_tables_owner || '.' || c.error_table ||
' TO ' || USER;
END IF;
END LOOP;
-- refresh view
tree.create_dml_errors_view();
END;