Consolidate links to objects into a function

This commit is contained in:
Jan Kvetina 2022-01-29 09:04:57 +01:00
parent 1274bd4764
commit 807128abae
7 changed files with 42 additions and 34 deletions

View File

@ -46,6 +46,20 @@ CREATE OR REPLACE PACKAGE app_actions AS
-- ### Help functions
--
--
-- Get link to proper object page
--
FUNCTION get_object_link (
in_object_type VARCHAR2 := NULL,
in_object_name VARCHAR2 := NULL
)
RETURN VARCHAR2;
-- ### Navigation page
--

View File

@ -1,5 +1,23 @@
CREATE OR REPLACE PACKAGE BODY app_actions AS
FUNCTION get_object_link (
in_object_type VARCHAR2 := NULL,
in_object_name VARCHAR2 := NULL
)
RETURN VARCHAR2
AS
BEGIN
RETURN CASE in_object_type
WHEN 'TABLE' THEN app.get_page_link(951, in_names => 'P951_TABLE_NAME', in_values => in_object_name)
WHEN 'TRIGGER' THEN app.get_page_link(952, in_names => 'P952_TRIGGER_NAME', in_values => in_object_name)
WHEN 'VIEW' THEN app.get_page_link(955, in_names => 'P955_VIEW_NAME', in_values => in_object_name)
WHEN 'PACKAGE' THEN app.get_page_link(960, in_names => 'P960_PACKAGE_NAME', in_values => in_object_name)
WHEN 'JOB' THEN app.get_page_link(905, in_names => 'P905_JOB_NAME', in_values => in_object_name)
END;
END;
PROCEDURE nav_remove_pages (
in_page_id navigation.page_id%TYPE := NULL
)

View File

@ -124,17 +124,7 @@ SELECT
ELSE r.table_name
END AS table_name,
--
app.get_page_link (
in_page_id => CASE
WHEN t.object_type = 'TABLE' THEN 951
WHEN t.object_type = 'VIEW' THEN 955
END,
in_names => CASE
WHEN t.object_type = 'TABLE' THEN 'P951_TABLE_NAME'
WHEN t.object_type = 'VIEW' THEN 'P955_VIEW_NAME'
END,
in_values => r.table_name
) AS table_link,
app_actions.get_object_link(t.object_type, r.table_name) AS table_link,
--
CASE
WHEN r.source_type_code != 'NATIVE_IG'

View File

@ -40,11 +40,7 @@ FROM (
s.column_name,
s.data_type,
--
LISTAGG('<a href="' ||
app.get_page_link(951,
in_names => 'P951_TABLE_NAME',
in_values => s.table_name
) || '">' || s.table_name || '</a>', ', ')
LISTAGG('<a href="' || app_actions.get_object_link('TABLE', s.table_name) || '">' || s.table_name || '</a>', ', ')
WITHIN GROUP (ORDER BY s.table_name) AS tables,
--
LISTAGG('ALTER TABLE ' || LOWER(s.table_name) ||

View File

@ -3,14 +3,7 @@ SELECT
INITCAP(o.object_type) AS object_type,
COUNT(*) AS count_objects,
--
CASE o.object_type
WHEN 'TABLE' THEN app.get_page_link(951)
WHEN 'TRIGGER' THEN app.get_page_link(952)
WHEN 'VIEW' THEN app.get_page_link(955)
WHEN 'PACKAGE' THEN app.get_page_link(960)
WHEN 'JOB' THEN app.get_page_link(905)
ELSE NULL
END AS page_link
app_actions.get_object_link(o.object_type) AS page_link
FROM user_objects o
WHERE o.object_type NOT IN ('PACKAGE BODY', 'TABLE PARTITION')
GROUP BY o.object_type;

View File

@ -10,12 +10,7 @@ SELECT
'<span style="margin-left: 2rem;">' || d.name || '</SPAN>' AS ref_name,
LISTAGG(d.type, ', ') WITHIN GROUP (ORDER BY d.type) AS ref_type,
--
CASE REPLACE(MIN(d.type), ' BODY', '')
WHEN 'TRIGGER' THEN app.get_page_link(952, in_names => 'P952_TRIGGER_NAME', in_values => d.name)
WHEN 'VIEW' THEN app.get_page_link(955, in_names => 'P955_VIEW_NAME', in_values => d.name)
WHEN 'PACKAGE' THEN app.get_page_link(960, in_names => 'P960_PACKAGE_NAME', in_values => d.name)
ELSE NULL
END AS ref_link
app_actions.get_object_link(REPLACE(MIN(d.type), ' BODY', ''), d.name) AS ref_link
FROM user_dependencies d
JOIN x
ON x.owner_ = d.referenced_owner

View File

@ -15,12 +15,12 @@ r AS (
d.name AS view_name,
--
LISTAGG(CASE WHEN d.referenced_type = 'TABLE'
THEN '<a href="' || app.get_page_link(951, in_names => 'P951_TABLE_NAME', in_values => d.referenced_name) || '">' || d.referenced_name || '</a>' END, ', ')
THEN '<a href="' || app_actions.get_object_link(d.referenced_type, d.referenced_name) || '">' || d.referenced_name || '</a>' END, ', ')
WITHIN GROUP (ORDER BY d.referenced_name)
AS referenced_tables,
--
LISTAGG(CASE WHEN d.referenced_type = 'VIEW'
THEN '<a href="' || app.get_page_link(955, in_names => 'P955_VIEW_NAME', in_values => d.referenced_name) || '">' || d.referenced_name || '</a>' END, ', ')
THEN '<a href="' || app_actions.get_object_link(d.referenced_type, d.referenced_name) || '">' || d.referenced_name || '</a>' END, ', ')
WITHIN GROUP (ORDER BY d.referenced_name)
AS referenced_views
FROM user_dependencies d
@ -32,8 +32,10 @@ r AS (
),
u AS (
SELECT
d.referenced_name AS view_name,
LISTAGG(d.name, ', ') WITHIN GROUP (ORDER BY d.name) AS used_in_objects
d.referenced_name AS view_name,
--
LISTAGG('<a href="' || app_actions.get_object_link(d.type, d.name) || '">' || d.name || '</a>', ', ')
WITHIN GROUP (ORDER BY d.name) AS used_in_objects
FROM user_dependencies d
WHERE d.referenced_type = 'VIEW'
GROUP BY d.referenced_name