37 lines
1.4 KiB
SQL
37 lines
1.4 KiB
SQL
--DROP MATERIALIZED VIEW nav_availability_mvw;
|
|
CREATE MATERIALIZED VIEW nav_availability_mvw
|
|
BUILD DEFERRED
|
|
REFRESH ON DEMAND COMPLETE
|
|
AS
|
|
SELECT
|
|
p.application_id,
|
|
p.page_id,
|
|
MIN(p.authorization_scheme) AS auth_scheme,
|
|
MIN(f.package_name) AS package_name,
|
|
MIN(f.object_name) AS procedure_name,
|
|
MIN(f.pls_type) AS data_type,
|
|
MIN(a.argument_name) AS argument_name
|
|
FROM apex_application_pages p
|
|
LEFT JOIN all_procedures s
|
|
ON s.owner = app.get_core_owner()
|
|
AND s.object_name IN ('A' || TO_CHAR(p.application_id), 'APP', 'AUTH') -- packages
|
|
AND s.procedure_name = p.authorization_scheme
|
|
LEFT JOIN all_arguments f
|
|
ON f.owner = s.owner
|
|
AND f.object_name = s.procedure_name
|
|
AND f.package_name = s.object_name
|
|
AND f.overload IS NULL
|
|
AND f.position = 0
|
|
AND f.argument_name IS NULL
|
|
AND f.in_out = 'OUT'
|
|
LEFT JOIN all_arguments a
|
|
ON a.owner = f.owner
|
|
AND a.object_name = f.package_name
|
|
AND a.package_name = f.object_name
|
|
AND a.overload IS NULL
|
|
AND a.position = 1
|
|
AND a.data_type = 'NUMBER'
|
|
AND a.in_out = 'IN'
|
|
GROUP BY p.application_id, p.page_id;
|
|
|