CORE/database/views/logs_overview.sql
2022-07-02 07:36:14 +02:00

56 lines
1.9 KiB
SQL

CREATE OR REPLACE VIEW logs_overview AS
WITH x AS (
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_number_item('$RECENT_LOG_ID') AS recent_log_id,
app.get_item('$FLAG') AS flag,
app.get_number_item('$PAGE_ID') AS page_id,
app.get_item('$USER_ID') AS user_id,
app.get_number_item('$SESSION_ID') AS session_id,
app.get_item('$MODULE_NAME') AS module_name,
app.get_item('$ACTION_NAME') AS action_name,
app.get_date_item('G_TODAY') AS today
FROM DUAL
),
p AS (
SELECT /*+ MATERIALIZE */
p.page_id,
NULLIF(p.page_group || ' - ', ' - ') || p.page_alias AS page_title
FROM apex_application_pages p
JOIN x
ON x.app_id = p.application_id
)
SELECT
l.log_id,
l.log_parent,
l.app_id,
l.page_id,
l.user_id,
l.flag,
l.action_name,
l.module_name,
l.module_line,
l.module_timer,
l.arguments,
l.payload,
l.session_id,
l.created_at,
p.page_title
FROM logs l
JOIN x
ON l.created_at >= x.today
AND l.created_at < x.today + 1
AND l.app_id IN (x.app_id, 0)
AND l.log_id > NVL(x.recent_log_id, 0)
AND l.flag = NVL(x.flag, l.flag)
AND l.page_id = NVL(x.page_id, l.page_id)
AND l.user_id = NVL(x.user_id, l.user_id)
AND (l.session_id = NVL(x.session_id, l.session_id) OR (l.session_id IS NULL AND x.session_id IS NULL))
AND (l.module_name = NVL(x.module_name, l.module_name) OR (l.module_name IS NULL AND x.module_name IS NULL))
AND (l.action_name = NVL(x.action_name, l.action_name) OR (l.action_name IS NULL AND x.action_name IS NULL))
LEFT JOIN p
ON p.page_id = l.page_id;
--
COMMENT ON TABLE logs_overview IS '[CORE - DASHBOARD] Logs';