diff --git a/packages/app_actions.spec.sql b/packages/app_actions.spec.sql
index 0cac984..d4932ea 100644
--- a/packages/app_actions.spec.sql
+++ b/packages/app_actions.spec.sql
@@ -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
--
diff --git a/packages/app_actions.sql b/packages/app_actions.sql
index 79f0309..646a294 100644
--- a/packages/app_actions.sql
+++ b/packages/app_actions.sql
@@ -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
)
diff --git a/views/nav_regions.sql b/views/nav_regions.sql
index ae56cb9..1649d2e 100644
--- a/views/nav_regions.sql
+++ b/views/nav_regions.sql
@@ -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'
diff --git a/views/obj_constraints_fix_dt2.sql b/views/obj_constraints_fix_dt2.sql
index dd627b8..d6e3252 100644
--- a/views/obj_constraints_fix_dt2.sql
+++ b/views/obj_constraints_fix_dt2.sql
@@ -40,11 +40,7 @@ FROM (
s.column_name,
s.data_type,
--
- LISTAGG('' || s.table_name || '', ', ')
+ LISTAGG('' || s.table_name || '', ', ')
WITHIN GROUP (ORDER BY s.table_name) AS tables,
--
LISTAGG('ALTER TABLE ' || LOWER(s.table_name) ||
diff --git a/views/obj_overview.sql b/views/obj_overview.sql
index d789976..68e63b8 100644
--- a/views/obj_overview.sql
+++ b/views/obj_overview.sql
@@ -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;
diff --git a/views/obj_tables_ref_objects.sql b/views/obj_tables_ref_objects.sql
index f020de6..40a6819 100644
--- a/views/obj_tables_ref_objects.sql
+++ b/views/obj_tables_ref_objects.sql
@@ -10,12 +10,7 @@ SELECT
'' || d.name || '' 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
diff --git a/views/obj_views.sql b/views/obj_views.sql
index e7e205c..06a76c5 100644
--- a/views/obj_views.sql
+++ b/views/obj_views.sql
@@ -15,12 +15,12 @@ r AS (
d.name AS view_name,
--
LISTAGG(CASE WHEN d.referenced_type = 'TABLE'
- THEN '' || d.referenced_name || '' END, ', ')
+ THEN '' || d.referenced_name || '' END, ', ')
WITHIN GROUP (ORDER BY d.referenced_name)
AS referenced_tables,
--
LISTAGG(CASE WHEN d.referenced_type = 'VIEW'
- THEN '' || d.referenced_name || '' END, ', ')
+ THEN '' || d.referenced_name || '' 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('' || d.name || '', ', ')
+ WITHIN GROUP (ORDER BY d.name) AS used_in_objects
FROM user_dependencies d
WHERE d.referenced_type = 'VIEW'
GROUP BY d.referenced_name