How to check if a patch is applied in Oracle Apps (11i, R12)

Oracle frequently releases patches necessary to maintain your EBS Environment Healthy and Up-To-Date. These include Recommended patches (RPC), Technology Stack patches, Performance patches, Security Patches, etc.

Sometimes, you also identify a patch while searching on support.oracle.com(Metalink), when you face issues with Oracle apps and would like to see if that patch is applied to your environment.

This is the way you can check it,

Is this patch applied to Oracle Apps R12.2.X?

For Oracle Apps R12 (12.2.x), Oracle provides built-in API AD_PATCH.IS_PATCH_APPLIED to check patch information.

This is how you can use it.

SELECT AD_PATCH.IS_PATCH_APPLIED(\'$release\',\'$appltop_id\',\'$patch_no\',\'$language\')
from dual;

Example: Check if patch 1578898 is applied or not.

SELECT adb.bug_number,ad_patch.is_patch_applied('11i', 1021, adb.bug_number)
FROM ad_bugs adb
WHERE adb.bug_number in (1578898);

Above query is applicable for multi-node for single node apps tier, use below query

SELECT ad_patch.is_patch_applied(‘R12’,-1,1578898)
from dual;

This returns

EXPLICIT = Means patch is applied
NOT APPLIED = means patch not applied / aborted

Is this patch applied to Oracle Apps 11i and R12.1.X?

Run the query against ad_bugs and/or ad_applied_patches tables in Oracle Apps 11i and R12.1.X to check which patch is applied and when is it applied. These tables maintain all this information.

Query to check patch information,

SELECT *
FROM ad_bugs;
SELECT *
FROM ad_applied_patches;

Difference between ad_bugs and ad_applied_patches

The difference between ad_bugs and ad_applied_patches is the information it stores. The patch is a collection of bugs. Every bug is having an entry in ad_bugs while there would be only one entry in the ad_applied_patches table.