CORE/database/tables/logs.sql
2022-07-04 06:49:28 +02:00

42 lines
2.3 KiB
SQL

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_P3208" VALUES LESS THAN (TIMESTAMP '2022-06-28 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';