Dictionary views in APEX are similar to dictionary views in Oracle Database. They provide a way to access metadata about the application without having to query the underlying tables directly. Dictionary views are read-only views that can be used by developers, administrators, and other users to gather information about the application.
There are several types of dictionary views in APEX, including:
APEX_APPLICATION_PAGE_REGIONS: Ccontains information about the regions on a page. It includes details about the region type, region name, and region position.
APEX_APPLICATION_PAGES: Contains information about the pages in an application. It includes details about the page name, page ID, and page type.
APEX_APPLICATION_ITEMS: Contains information about the items on a page. It includes details about the item type, item name, and item position.
APEX_APPLICATION_LOVS: Contains information about the list of values (LOV) used in an application. It includes details about the LOV name, LOV type, and LOV source.
APEX_APPLICATION_TABS: Contains information about the tabs used in an application. It includes details about the tab name, tab position, and tab set ID.
To get a list of all available views we can perform the query below.
select *
from apex_dictionary
where column_id = 0;
The example below shows all pages without no page access protection in the app 100 and workspace MY_WORKSPACE.
select *
from APEX_APPLICATION_PAGES
where page_access_protection = 'Unrestricted'
and application_id = 100
and workspace = 'MY_WORKSPACE';
The query below will return a nice view of the dictionary views grouped by hierarchy
select LPAD (' ', (LEVEL - 1) * 2) || apex_view_name s, comments
from (
select 'ROOT' as apex_view_name, null as comments, null as parent_view
from dual
UNION
select apex_view_name, comments, nvl(parent_view,'ROOT') as parent_view
from apex_dictionary
where column_id = 0
)
connect by prior apex_view_name = parent_view
start with parent_view is null
order SIBLINGS by apex_view_name DESC;
In Addition, inside the APEX builder utilities, there is an interactive report listing all the views and a tree view showing the dictionary views like the query above
In conclusion, Oracle APEX dictionary views provide a way to access metadata about the application without having to query the underlying tables directly. Developers can quickly gather information about the application's structure, saving time and effort.