Schemas centralized

This commit is contained in:
Jan Kvetina 2022-03-12 19:57:37 +01:00
parent 70b42740a5
commit 999d65d943
7 changed files with 64 additions and 28 deletions

View File

@ -165,3 +165,17 @@ COMMIT;
--
-- REFRESH ALL MVW
--
BEGIN
FOR c IN (
SELECT m.mview_name
FROM user_mviews m
ORDER BY 1
) LOOP
DBMS_MVIEW.REFRESH(c.mview_name, 'C', parallelism => 1);
END LOOP;
END;
/

View File

@ -22,7 +22,7 @@ wwv_flow_api.create_page(
,p_page_template_options=>'#DEFAULT#'
,p_required_role=>wwv_flow_api.id(9556407311505078)
,p_last_updated_by=>'DEV'
,p_last_upd_yyyymmddhh24miss=>'20220306104327'
,p_last_upd_yyyymmddhh24miss=>'20220312183327'
);
wwv_flow_api.create_page_plug(
p_id=>wwv_flow_api.id(14218446056378932)
@ -310,14 +310,7 @@ wwv_flow_api.create_page_item(
,p_item_plug_id=>wwv_flow_api.id(14218446056378932)
,p_prompt=>'Current Schema'
,p_display_as=>'NATIVE_SELECT_LIST'
,p_lov=>wwv_flow_string.join(wwv_flow_t_varchar2(
'SELECT',
' a.owner,',
' a.owner AS owner_',
'FROM apex_applications a',
'GROUP BY a.owner',
'ORDER BY 1;',
''))
,p_named_lov=>'LOV_CORE_APP_SCHEMAS'
,p_cHeight=>1
,p_colspan=>4
,p_field_template=>wwv_flow_api.id(9142775823569991)

View File

@ -0,0 +1,27 @@
prompt --application/shared_components/user_interface/lovs/lov_core_app_schemas
begin
-- Manifest
-- LOV_CORE_APP_SCHEMAS
-- Manifest End
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.7'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_list_of_values(
p_id=>wwv_flow_api.id(36134366775466014)
,p_lov_name=>'LOV_CORE_APP_SCHEMAS'
,p_source_type=>'TABLE'
,p_location=>'LOCAL'
,p_query_table=>'LOV_APP_SCHEMAS'
,p_return_column_name=>'OWNER'
,p_display_column_name=>'OWNER_'
,p_default_sort_column_name=>'OWNER_'
,p_default_sort_direction=>'ASC'
);
wwv_flow_api.component_end;
end;
/

View File

@ -29,6 +29,7 @@ prompt --install
@@application/shared_components/navigation/tabs/standard.sql
@@application/shared_components/navigation/tabs/parent.sql
@@application/shared_components/user_interface/lovs/login_remember_username.sql
@@application/shared_components/user_interface/lovs/lov_core_app_schemas.sql
@@application/shared_components/user_interface/lovs/lov_core_events_event_id_event_name.sql
@@application/shared_components/user_interface/lovs/lov_core_flags_name_value.sql
@@application/shared_components/user_interface/lovs/lov_core_languages.sql

View File

@ -0,0 +1,8 @@
CREATE OR REPLACE VIEW lov_app_schemas AS
SELECT
a.owner,
a.owner AS owner_
FROM apex_applications a
WHERE a.owner NOT LIKE 'APEX%'
GROUP BY a.owner;

View File

@ -4,9 +4,12 @@ BUILD DEFERRED
REFRESH ON DEMAND COMPLETE
AS
WITH w AS (
SELECT a.owner, a.application_id
SELECT /*+ MATERIALIZE */
a.owner,
a.application_id
FROM apex_applications a
WHERE a.owner NOT LIKE 'APEX%'
JOIN lov_app_schemas s
ON s.owner = a.owner
)
SELECT
p.application_id,

View File

@ -3,12 +3,7 @@ CREATE MATERIALIZED VIEW obj_modules_mvw
BUILD DEFERRED
REFRESH ON DEMAND COMPLETE
AS
WITH w AS (
SELECT DISTINCT a.owner
FROM apex_applications a
WHERE a.owner NOT LIKE 'APEX%'
),
i AS (
WITH i AS (
-- find modules and start lines in spec and body
SELECT /*+ MATERIALIZE */
i.owner,
@ -21,8 +16,8 @@ i AS (
LEAD(i.line) OVER (PARTITION BY i.object_name, i.object_type ORDER BY i.line) - 1 AS end_line,
ROW_NUMBER() OVER (PARTITION BY i.object_name, i.object_type, i.name ORDER BY i.line) AS overload
FROM all_identifiers i
JOIN w
ON w.owner = i.owner
JOIN lov_app_schemas s
ON s.owner = i.owner
WHERE i.type IN ('PROCEDURE', 'FUNCTION')
AND i.object_type IN ('PACKAGE', 'PACKAGE BODY')
AND i.usage IN ('DEFINITION', 'DECLARATION')
@ -55,8 +50,8 @@ e AS (
s.type,
s.line
FROM all_source s
JOIN w
ON w.owner = s.owner
JOIN lov_app_schemas o
ON o.owner = s.owner
WHERE (
(s.type = 'PACKAGE BODY' AND REGEXP_LIKE(UPPER(s.text), '^\s*END(\s+[A-Z0-9_]+)?\s*;')) OR
(s.type = 'PACKAGE' AND REGEXP_LIKE(UPPER(s.text), ';'))
@ -229,8 +224,8 @@ LEFT JOIN (
RTRIM(REGEXP_REPLACE(s.text, '^\s*--\s*###\s*', '')) AS group_name,
RPAD(' ', ROW_NUMBER() OVER(ORDER BY s.line DESC)) AS group_sort
FROM all_source s
JOIN w
ON w.owner = s.owner
JOIN lov_app_schemas o
ON o.owner = s.owner
WHERE s.type = 'PACKAGE'
AND REGEXP_LIKE(s.text, '^\s*--\s*###')
) g
@ -249,9 +244,4 @@ LEFT JOIN (
AND g.package_name = t.package_name
AND g.module_name = t.module_name
AND g.subprogram_id = t.subprogram_id;
--
BEGIN
DBMS_MVIEW.REFRESH('OBJ_MODULES_MVW', 'C', parallelism => 4); -- 52s on free cloud
END;
/