Are You Keeping up with Your APEX Housekeeping?

Search for a command to run...

No comments yet. Be the first to comment.
Oracle APEX ideas and insights that you can read in four minutes or less.
I have used Oracle APEX Social Sign-On extensively. It is more convenient for users and moves the responsibility for managing passwords from developers to the experts. You can also use Social Sign-On to log into APEX Builder. If you are a developer, ...
Introduction One of the marquee features of APEX 26.1 was AI Interactive Reports. When I started testing this new feature, I was interested to see what was going on behind the scenes. In this post, I

Introduction One of the marquee features of APEX 26.1 is APEX AI Agents. APEX AI Agents allow you to use an LLM and your own PL/SQL and JS tools to perform actions on your data instead of just chattin

Introduction In my previous post, I looked at logging APEX AI Agent requests and responses with Request and Response handlers. Logging is the first step because it shows you what is actually moving th

Introduction Logging is one of the first things you need when building serious AI Agents. Without it, debugging quickly becomes guesswork. You can see the final answer, but not always why the model ch

Context management patterns from building agents in Oracle APEX

Oracle APEX has a daily DB job that performs internal housekeeping (deleting expired session state, rotating log tables, etc.). Just like APEX, developers should also perform regular housekeeping on their APEX applications to keep them clear of clutter. Every unused component, static file, etc. adds to the noise developers have to navigate; some unused components can even impact performance.
In this short, I will look at some areas where clutter can accumulate and provide tips to identify and remove it. I'll also cover other housekeeping tasks that APEX developers should know.
This is probably the biggest cause of clutter in APEX applications. This can happen in many areas, including Regions, Page Processes, Report Columns, Buttons, and Page Items.
Use APEX data dictionary views to identify offenders. Once detected, delete them. Here are two queries to get you started.
-- Regions
SELECT workspace
, application_id
, page_id
, page_name
, region_name
FROM apex_application_page_regions
WHERE condition_type_code = 'NEVER';
-- Page Items
SELECT workspace
, application_id
, item_name
, page_id
, page_name
FROM apex_application_page_items
WHERE condition_type_code = 'NEVER';
Unused APEX components are a significant source of clutter. You create a LOV for a page item, delete the page item and forget to delete the LOV. This causes a confusing proliferation of LOVs. New developers wonder, should I use the EMPLOYEE, the EMPLOYEE_ACTIVE, or the EMPLOYEE_NEW LOV?
The most frequently un-referenced components (in order of the confusion they cause) are:
DROP USER APEX_190100 CASCADE;