CREATE TABLE logs ( log_id INTEGER CONSTRAINT nn_logs_log_id NOT NULL, log_parent INTEGER, app_id NUMBER(4,0) CONSTRAINT nn_logs_app_id NOT NULL, page_id NUMBER(6,0), user_id VARCHAR2(30), flag CHAR(1) CONSTRAINT nn_logs_flag NOT NULL, action_name VARCHAR2(32), module_name VARCHAR2(48), module_line NUMBER(8,0), module_timer VARCHAR2(12), arguments VARCHAR2(2000), payload VARCHAR2(4000), session_id INTEGER, created_at TIMESTAMP(6) CONSTRAINT nn_logs_created_at NOT NULL, -- CONSTRAINT pk_logs PRIMARY KEY (log_id) ) PARTITION BY RANGE (created_at) INTERVAL (NUMTODSINTERVAL(1, 'DAY')) ( PARTITION "SYS_P3228" VALUES LESS THAN (TIMESTAMP '2022-06-29 00:00:00') ); -- COMMENT ON TABLE logs IS '[CORE] Various logs raised in application; daily partitions'; -- COMMENT ON COLUMN logs.log_id IS 'Log ID generated from LOG_ID sequence'; COMMENT ON COLUMN logs.log_parent IS 'Parent log record; dont use FK to avoid deadlocks'; COMMENT ON COLUMN logs.app_id IS 'APEX Application ID'; COMMENT ON COLUMN logs.page_id IS 'APEX Application PAGE ID'; COMMENT ON COLUMN logs.user_id IS 'User ID'; COMMENT ON COLUMN logs.flag IS 'Type of error listed in tree package specification; FK missing for performance reasons'; COMMENT ON COLUMN logs.action_name IS 'Action name to distinguish position in module or use it as warning/error names'; COMMENT ON COLUMN logs.module_name IS 'Module name (procedure or function name)'; COMMENT ON COLUMN logs.module_line IS 'Line in the module'; COMMENT ON COLUMN logs.module_timer IS 'Time interval indicating successful finish'; COMMENT ON COLUMN logs.arguments IS 'Arguments passed to module'; COMMENT ON COLUMN logs.payload IS 'Formatted call stack, error stack or query with DML error'; COMMENT ON COLUMN logs.session_id IS 'Session ID (generated by APEX) from sessions table'; COMMENT ON COLUMN logs.created_at IS 'Timestamp of creation';