How to Check Applied Patches and Patch Level in Oracle EBS: SQL Generator
This generator writes the queries an Apps DBA uses to answer what release an Oracle EBS instance is on, whether a bug fix is applied, and which patching cycles ran recently, for 12.1 and 12.2. 12.2-only blocks cover adop sessions, AD and TXK code levels and AD_PATCH.IS_PATCH_APPLIED.
Fill in
Each number in single quotes, separated by commas.
FND_APPLICATION short names: AP is SQLAP, GL is SQLGL.
1. Release (works on 12.2)
SELECT release_name FROM apps.fnd_product_groups;
2. Are these bugs applied? (12.1 and 12.2)
SELECT b.bug_number,
b.application_short_name,
b.language,
b.creation_date
FROM ad_bugs b
WHERE b.bug_number IN ('12345678','23456789')
ORDER BY b.creation_date DESC;3. Most recent patch runs (12.1 and 12.2)
SELECT *
FROM (SELECT ap.patch_name,
ap.patch_type,
pd.driver_file_name,
pr.start_date,
pr.end_date
FROM ad_applied_patches ap
JOIN ad_patch_drivers pd ON pd.applied_patch_id = ap.applied_patch_id
JOIN ad_patch_runs pr ON pr.patch_driver_id = pd.patch_driver_id
ORDER BY pr.end_date DESC)
WHERE ROWNUM <= 50;4. 12.2 only: online patching sessions and patches
SELECT adop_session_id, prepare_status, apply_status, finalize_status,
cutover_status, cleanup_status, abort_status, status, node_name
FROM ad_adop_sessions
ORDER BY adop_session_id DESC;
SELECT adop_session_id, bug_number, status, applied_file_system_base,
patch_file_system_base, adpatch_options, node_name, end_date
FROM ad_adop_session_patches
ORDER BY end_date DESC;5. 12.2 only: AD, TXK and ATG code levels
SELECT abbreviation,
codelevel
FROM ad_trackable_entities
WHERE abbreviation IN ('ad','txk','fnd','atg_pf')
ORDER BY abbreviation;6. Product installation status and patch level
SELECT fa.application_short_name,
fpi.patch_level,
DECODE(fpi.status, 'I', 'Installed', 'S', 'Shared', 'N', 'Not installed', fpi.status) AS install_status,
fpi.product_version
FROM fnd_product_installations fpi
JOIN fnd_application fa ON fa.application_id = fpi.application_id
WHERE fa.application_short_name IN ('AD','FND','ONT','INV','PO','SQLAP','SQLGL','AR')
ORDER BY fa.application_short_name;7. 12.2 only: explicit or implicit application of one bug
-- Returns EXPLICIT, IMPLICIT or NOT_APPLIED; -1 checks across all APPL_TOPs
SELECT ad_patch.is_patch_applied('R12', -1, 12345678) AS patch_status
FROM dual;AD_TRACKABLE_ENTITIES and AD_ADOP tables exist only in 12.2. Confirm the AD_PATCH.IS_PATCH_APPLIED call against My Oracle Support guidance for your AD level, and use adop -status for the authoritative state of the current patching cycle.
Get your patch level summary reviewed
Send the output of these queries and we will flag missing AD, TXK and product prerequisites for your next update.
Optional. The tool and every export work without this. No spam.
How to use it
Choose the release, enter the bug numbers a support note or SR asked you to confirm, and adjust the product short names. Run block 1 for the release string (for example 12.2.10), block 2 to see whether the bugs are recorded in AD_BUGS, and block 3 for the last 50 patch driver runs. On 12.2 also run blocks 4, 5 and 7. Block 6 lists the patch level per product, such as R12.ONT.C.delta.10 on 12.2 (12.1 uses the B codeline, for example R12.ONT.B.delta.3), which is what Oracle Support asks for when they want to know your family pack or RUP level. All queries are read-only and can be run as APPS or any user with select on the AD and FND tables.
Where patch history lives
AD_BUGS holds one row per bug fixed by any applied patch, including bugs included in merged or cumulative patches. AD_APPLIED_PATCHES holds one row per patch, AD_PATCH_DRIVERS one row per driver file, and AD_PATCH_RUNS one row per run of a driver with start and end dates. In 12.2, online patching adds AD_ADOP_SESSIONS (one row per patching cycle with the status of each phase: prepare, apply, finalize, cutover, cleanup and abort) and AD_ADOP_SESSION_PATCHES (each patch applied in a session, with the file system base it was applied to). AD_TRACKABLE_ENTITIES stores the code level of tracked components such as ad, txk, fnd and atg_pf, for example C.Delta.13.
12.1 versus 12.2 differences
On 12.1 adpatch updates AD_BUGS when a patch completes, so AD_BUGS is a reliable answer. On 12.2, patches are applied to the patch edition during an online patching cycle, and a cycle can still be aborted before cutover. For that reason Oracle provides AD_PATCH.IS_PATCH_APPLIED, which reports EXPLICIT when the bug was applied directly, IMPLICIT when it is included in a later patch, and NOT_APPLIED otherwise. Use it and adop -status rather than a bare AD_BUGS lookup when the answer matters for a support case or an upgrade prerequisite.
- Apply status in AD_ADOP_SESSIONS: check that cutover and cleanup completed, not only apply.
- Patch Wizard compares your instance with recommended patches and is the right tool for gap lists.
Worked example
An SR asks you to confirm two bug fixes before an upgrade. Block 1 returns 12.2.9. Block 2 returns one of the two bugs with a creation date from last year's cycle. Block 7 for the missing bug returns IMPLICIT, meaning a later cumulative patch already contains the fix, so nothing needs to be applied. Block 5 shows ad and txk at C.Delta.12, which tells you the AD and TXK delta prerequisites for the next RUP still need to be applied first.
Frequently Asked Questions
How do I check which version of Oracle EBS I am on?
Run SELECT release_name FROM apps.fnd_product_groups. It returns the release such as 12.1.3 or 12.2.10. You can also see it under Help > About Oracle Applications in the Forms interface or in Oracle Applications Manager. For 12.2, the AD and TXK code levels from AD_TRACKABLE_ENTITIES complete the picture.
How do I check if a patch is applied in Oracle EBS 12.2?
Run SELECT ad_patch.is_patch_applied('R12', -1, <bug>) FROM dual. It returns EXPLICIT, IMPLICIT or NOT_APPLIED. Combine it with adop -status to make sure the cycle that applied the patch completed cutover. On 12.1, query AD_BUGS by BUG_NUMBER instead.
Which tables store applied patches in Oracle R12?
AD_APPLIED_PATCHES, AD_PATCH_DRIVERS, AD_PATCH_RUNS and AD_BUGS in both 12.1 and 12.2. Release 12.2 adds AD_ADOP_SESSIONS and AD_ADOP_SESSION_PATCHES for online patching cycles and AD_TRACKABLE_ENTITIES for code levels. Product patch levels are in FND_PRODUCT_INSTALLATIONS.
What does the patch_level column in FND_PRODUCT_INSTALLATIONS mean?
It records the highest family pack or release update pack level applied for that product, in the form R12.<PRODUCT>.<codeline>.<level>, for example R12.ONT.C.delta.10 on 12.2 or R12.ONT.B.delta.3 on 12.1. Oracle Support uses it to confirm prerequisite levels; it is not updated by every one-off patch, so do not use it to check individual bug fixes.
If your DBAs want to ask your EBS instance about patches, versions and cycles in plain English on your own servers, we can set that up.
Related Tools
Oracle EBS 12.2 adop Patch Cycle Downtime Calculator
Estimate how long a 12.2 adop cycle runs, how much of it users actually lose at cutover, and how that compares with applying the same patches in downtime mode.
OracleOracle EBS Patching Checklist for adop
Step through a full adop patching cycle with pre-checks, the five phases and post-patch validation.
OracleOracle EBS 12.2 Upgrade Readiness Checklist
Check whether your EBS environment, custom code and team are ready to move to Release 12.2 and what to settle before the project starts.
Developer ToolsOracle EBS Workflow Error and Notification SQL Generator
Generate the five queries and the PL/SQL retry block a workflow administrator needs: errored activities, open notifications, mailer backlog, deferred queue and retry.
More Oracle tools
See all- Oracle EBS Inventory Tables Reference
- Oracle EBS WIP Tables Reference
- Oracle EBS Cycle Count Workload Calculator
- Oracle EBS Discrete Manufacturing Go-Live Checklist
- Oracle EBS Inventory Accuracy Readiness Assessment
- Oracle EBS Concurrent Request Phase and Status Reference
- Oracle EBS Responsibility Design Worksheet
- Oracle EBS GL Period Close Checklist
- Oracle EBS AP Invoice Interface Template
Keep exploring
Free tools
- Oracle EBS 12.2 adop Patch Cycle Downtime CalculatorEstimate how long a 12.2 adop cycle runs, how much of it users actually lose at cutover, and how that compares with applying the same patches in downtime mode.
- Oracle EBS Critical Patch Update (CPU) Annual Effort CalculatorEstimate the annual hours, cost and production downtime of applying Oracle CPU patches to EBS, by cycle frequency and number of environments.
- Oracle EBS 12.2 Private AI Layer Blueprint GeneratorFill in your Oracle EBS 12.2 version, database, hosting and users to get a shareable architecture plan for a private, on-prem AI assistant.
ERP fixes and how-tos
- Fix adop phase=prepare Failures in EBS 12.2 Online Patchingadop phase=prepare failing in EBS 12.2 usually means the patch and run file systems are out of sync, or a prior cycle did not finish. Resync with fs_clone.
- How to Add a Private AI Layer to Oracle EBS 12.2 On-PremReference architecture for a private AI layer on Oracle EBS 12.2: Active Data Guard replica, ISG REST, MO and responsibility security, local GPUs and audit.
- How the adop Patching Cycle Works in Oracle EBS 12.2How the adop online patching cycle works in Oracle EBS 12.2: prepare, apply, finalize, cutover and cleanup phases across the dual fs1/fs2 file system.
Runs with your ERP
- Esker Order Management and Oracle E-Business SuiteHow Esker captures customer POs from email, fax and PDF and creates sales orders in Oracle EBS: integration, data flows, setup, pitfalls and a private AI layer.
- Cloud Inventory (DSI) with Oracle E-Business Suite: Mobile Barcode InventoryCloud Inventory, formerly DSI, adds offline mobile barcode inventory to Oracle E-Business Suite and JD Edwards. Data flows, setup steps, pitfalls and AI notes.
AI on your ERP
- AI for Oracle E-Business Suite, Without Leaving On-PremHosting Oracle EBS 12.2 on-prem or in a private cloud? Add a private LLM over concurrent programs, interface tables and AP/PO data without moving to Fusion.
- AI for Oracle EBS in Aerospace and Defense ManufacturingAI on Oracle EBS for aerospace and defense manufacturers: project manufacturing, serial control, and ITAR segregation handled without a cloud dependency.
Integrations
- How to add WhatsApp to Oracle E-Business SuiteHow to connect WhatsApp Business to Oracle E-Business Suite 12.1 and 12.2: ISG REST, Workflow business events, template messages and two-way replies into EBS.
- How to use ChatGPT with Oracle E-Business SuiteUsing ChatGPT with Oracle E-Business Suite: export vs live access, custom GPT actions over ISG REST, enterprise data controls and when to keep data on-prem.