May 23, 2026

Upgrading Oracle E-Business Suite R12.2 Database from 12.1.0.2 to 19c - Part I

Source Environment(12c)

Orace Database Version

12.1.0.2

E Business Suite Version

R12.2.5

Database Home path

/dbdata/erp/12.1.0

Application base

/apdata/erp/fs2/EBSapps

 

Target Environment(19c)

Orace Database Version

19.27

E Business Suite Version

R12.2.5

Database Home path

/dbdata/erp/19.3.0

Application base

/apdata/erp/fs2/EBSapps


Reference DOC ID: 2552181.1

Important Information Regarding the Upgrade to Oracle Database 19c :-

  •          When upgrading your Oracle E-Business Suite to Oracle Database 19c, your database will be converted to the multitenant architecture, with a Container Database (CDB) and a single Pluggable Database. Only multitenant architecture databases are certified for Oracle E-Business Suite with Oracle Database 19c.

  •          During the upgrade, you will also perform steps to migrate directories defined for PL/SQL File I/O to database directory objects. This requirement is due to the desupport in Oracle Database 19c of the UTL_FILE_DIR database initialization parameter.

  •          Oracle 19c Database Release Update Information for Oracle E-Business Suite:

    Oracle Database Release Update 19.3 as well as Release Update 19.5 and later are certified.

    Oracle recommends that you upgrade to the latest Oracle Database Release Update that is certified with Oracle E-Business Suite. Applying the latest Release Update will ensure that you have the security-related fixes and high-priority non-security fixes. See My Oracle Support Knowledge Document 2285040.1, Release Update Introduction and FAQ, for more details.

  •          You can upgrade directly from an earlier Oracle Database version to either:

  •          Oracle Database 19c Release Update 19.3

  •       Oracle Database 19c Release Update 19.6 or a later Oracle E-Business Suite certified RU

  •       You can upgrade to Oracle Database 19c Release Update 19.5 indirectly

  •          Upgrade from your earlier Oracle Database version to Oracle Database 19c Release Update 19.3  

  •          Apply Oracle Database Release Update 19.5.

  •          Note: We strongly recommend upgrading to Oracle Database 19c using the latest Oracle E-Business Suite certified Release Update (RU).

  •          When upgrading your Oracle E-Business Suite database, it is essential to measure your performance to make certain operations will continue to meet your requirements. The most reliable strategy is to upgrade the database in a test environment, and then conduct a benchmark test with a configuration, product mix, and user load that simulates your own current and expected workloads. These conditions can help verify performance before you upgrade your production-ready environment.

  •          Oracle E-Business Suite requires Oracle homes to be writable, not read-only


Run hcheck.sql(Document 136697.1 ) - Script to Check for problems from database end. It is always better to download the latest version of hcheck.sql from metalink.

Add following in bash_profile of db server

export PATH=$ORACLE_HOME/OPatch:$PATH

. .bash_profile

sqlplus / as sysdba


SQL> @hcheck.sql

 

HCheck Version 04AUG23 on 14-MAY-2025 10:05:33

----------------------------------------------

Catalog Version 12.1.0.2.0 (1201000200)

db_name: TEST

Is CDB?: NO

 

                                   Catalog       Fixed

Procedure Name                     Version    Vs Release    Timestamp

Result

------------------------------ ... ---------- -- ---------- --------------

------

.- LobNotInObj                 ... 1201000200 <=  *All Rel* 05/14 10:05:33 PASS

.- MissingOIDOnObjCol          ... 1201000200 <=  *All Rel* 05/14 10:05:33 PASS

.- SourceNotInObj              ... 1201000200 <=  *All Rel* 05/14 10:05:33 FAIL

 

HCKE-0003: SOURCE$ for OBJ# not in OBJ$ (Doc ID 1360233.1)

SOURCE$ has 283 rows for 22 OBJ# values not in OBJ$

 

.- OversizedFiles              ... 1201000200 <=  *All Rel* 05/14 10:06:11 PASS

.- PoorDefaultStorage          ... 1201000200 <=  *All Rel* 05/14 10:06:11 PASS

.- PoorStorage                 ... 1201000200 <=  *All Rel* 05/14 10:06:11 PASS

.- TabPartCountMismatch        ... 1201000200 <=  *All Rel* 05/14 10:06:14 PASS

.- OrphanedTabComPart          ... 1201000200 <=  *All Rel* 05/14 10:06:14 PASS

.- MissingSum$                 ... 1201000200 <=  *All Rel* 05/14 10:06:14 PASS

.- MissingDir$                 ... 1201000200 <=  *All Rel* 05/14 10:06:14 PASS

.- DuplicateDataobj            ... 1201000200 <=  *All Rel* 05/14 10:06:14 FAIL

 

HCKE-0014: Duplicate dataobj# (Doc ID 1360519.1)

DATAOBJ#=6005195 Tablespace=APPS_TS_TX_DATA Name=GL.XLA_GLT_40250606_N3

Type=INDEX

 

.- ObjSynMissing               ... 1201000200 <=  *All Rel* 05/14 10:06:16 PASS

.- ObjSeqMissing               ... 1201000200 <=  *All Rel* 05/14 10:06:17 PASS

.- OrphanedUndo                ... 1201000200 <=  *All Rel* 05/14 10:06:17 PASS

.- OrphanedIndex               ... 1201000200 <=  *All Rel* 05/14 10:06:17 PASS

.- OrphanedIndexPartition      ... 1201000200 <=  *All Rel* 05/14 10:06:22 PASS

.- OrphanedIndexSubPartition   ... 1201000200 <=  *All Rel* 05/14 10:06:22 PASS

.- OrphanedTable               ... 1201000200 <=  *All Rel* 05/14 10:06:22 PASS

.- OrphanedTablePartition      ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- OrphanedTableSubPartition   ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- MissingPartCol              ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- OrphanedSeg$                ... 1201000200 <=  *All Rel* 05/14 10:06:24 FAIL

 

HCKE-0023: Orphaned SEG$ Entry (Doc ID 1360934.1)

ORPHAN SEG$: SegType=INDEX TS=381 RFILE/BLOCK=401/140907

ORPHAN SEG$: SegType=INDEX TS=381 RFILE/BLOCK=401/177675

ORPHAN SEG$: SegType=LOB TS=381 RFILE/BLOCK=401/134987

ORPHAN SEG$: SegType=LOB TS=381 RFILE/BLOCK=401/177659

 

.- OrphanedIndPartObj#         ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- DuplicateBlockUse           ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- FetUet                      ... 1201000200 <=  *All Rel* 05/14 10:06:24 PASS

.- Uet0Check                   ... 1201000200 <=  *All Rel* 05/14 10:06:25 PASS

.- SeglessUET                  ... 1201000200 <=  *All Rel* 05/14 10:06:25 PASS

.- BadInd$                     ... 1201000200 <=  *All Rel* 05/14 10:06:35 PASS

.- BadTab$                     ... 1201000200 <=  *All Rel* 05/14 10:06:36 PASS

.- BadIcolDepCnt               ... 1201000200 <=  *All Rel* 05/14 10:06:37 PASS

.- ObjIndDobj                  ... 1201000200 <=  *All Rel* 05/14 10:06:37 PASS

.- TrgAfterUpgrade             ... 1201000200 <=  *All Rel* 05/14 10:06:37 PASS

.- ObjType0                    ... 1201000200 <=  *All Rel* 05/14 10:06:37 PASS

.- BadOwner                    ... 1201000200 <=  *All Rel* 05/14 10:06:37 PASS

.- StmtAuditOnCommit           ... 1201000200 <=  *All Rel* 05/14 10:06:38 WARN

 

HCKW-0013: option# in STMT_AUDIT_OPTION_MAP(ON COMMIT REFRESH) (Doc ID

1361021.1)

-- Please run the following:

SQL> update STMT_AUDIT_OPTION_MAP set option#=234

where name ='ON COMMIT REFRESH';

SQL> commit;

 

.- BadPublicObjects            ... 1201000200 <=  *All Rel* 05/14 10:06:38 PASS

.- BadSegFreelist              ... 1201000200 <=  *All Rel* 05/14 10:06:38 PASS

.- BadDepends                  ... 1201000200 <=  *All Rel* 05/14 10:06:38 PASS

.- CheckDual                   ... 1201000200 <=  *All Rel* 05/14 10:06:41 PASS

.- ObjectNames                 ... 1201000200 <=  *All Rel* 05/14 10:06:41 PASS

.- BadCboHiLo                  ... 1201000200 <= 1202000000 05/14 10:06:57 PASS

.- ChkIotTs                    ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- NoSegmentIndex              ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- BadNextObject               ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- DroppedROTS                 ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- FilBlkZero                  ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- DbmsSchemaCopy              ... 1201000200 <=  *All Rel* 05/14 10:06:59 PASS

.- OrphanedIdnseqObj           ... 1201000200 >  1201000000 05/14 10:06:59 PASS

.- OrphanedIdnseqSeq           ... 1201000200 >  1201000000 05/14 10:06:59 PASS

.- OrphanedObjError            ... 1201000200 >  1102000000 05/14 10:06:59 PASS

.- ObjNotLob                   ... 1201000200 <=  *All Rel* 05/14 10:07:00 PASS

.- MaxControlfSeq              ... 1201000200 <=  *All Rel* 05/14 10:07:00 PASS

.- SegNotInDeferredStg         ... 1201000200 >  1102000000 05/14 10:07:00 PASS

.- SystemNotRfile1             ... 1201000200 >   902000000 05/14 10:07:00 PASS

.- DictOwnNonDefaultSYSTEM     ... 1201000200 <=  *All Rel* 05/14 10:07:00 PASS

.- OrphanTrigger               ... 1201000200 <=  *All Rel* 05/14 10:07:00 PASS

.- ObjNotTrigger               ... 1201000200 <=  *All Rel* 05/14 10:07:00 PASS

---------------------------------------

14-MAY-2025 10:07:01  Elapsed: 88 secs

---------------------------------------

Found 6 potential problem(s) and 1 warning(s)

Contact Oracle Support with the output and trace file

to check if the above needs attention or not

 

PL/SQL procedure successfully completed. 

Statement processed.


Complete output is in trace file:

/dbdata/erp/12.1.0/admin/EBS_ebsproddb/diag/rdbms/ebs/EBS/trace/TEST_ora_22249_HCHECK.trc

  

Solution:-

HCKE-0003: SOURCE$ for OBJ# not in OBJ$ (Doc ID 1360233.1) – This error can be ignored.

HCKE-0014: Duplicate dataobj# (Doc ID 1360519.1) – This error can be ignored.


Run the Following Statement in sqlplus prompt.

SQL> update STMT_AUDIT_OPTION_MAP set option#=234 where name ='ON COMMIT REFRESH';

1 row updated.

SQL> commit;

Commit complete.


Step 2. Checking AD and TXK Current Versions

Apply the necessary patches to EBS as per the requirements, considering the version and the AD/TXK delta versions.

The current AD and TXK versions in my environment are already at Delta 10 as shown below


sqlplus apps/<apps_password>

SQL> col ABBREVIATION for a10

set lines 1000

col NAME for a50

col CODELEVEL for a20

SELECT ABBREVIATION,NAME,codelevel FROM apps.AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad');

 

ABBREVIATI NAME                                               CODELEVEL

---------- -------------------------------------------------- --------------------

ad         Applications DBA                                   C.10

txk        Oracle Applications Technology Stack               C.10

 



Apply Required Database Patches

AD-TXK Delta 16 requires a number of database bug fixes to install and operate correctly. With this requirement in mind, before you apply the AD and TXK Delta 16 RUPs you must run the EBS Technology Codelevel Checker (ETCC), using the command checkDBpatch.sh (on UNIX) or checkDBpatch.cmd (on Windows).

 

Before applying Delta patches , we need to install the prerequisites patches

To confirm the required database patches, we will run ETCC  checkDBpatch.sh

Download ETCC patch(Patch 17537119)

Patch 17537119

[oraprod@non-prod-db patch]$ cd /dbdata/patch/ETCC

 [oraprod@non-prod-db patch]$ sh checkDBpatch.sh

 =========================================================================================

PATCH RECOMMENDATION SUMMARY

=========================================================================================

The default patch recommendations to install these missing bugfixes are:

-----------------------------------------------------------------------------------------

Oracle Database Release 12.1.0.2

 [WARNING] No BP or PSU has been applied. You should apply the latest recommended BP or PSU

as appropriate. For a BP, refer to Doc ID 1594274.1. For a PSU, refer to Doc ID 1147107.1.

 -----------------------------------------------------------------------------------------

  Patch 8975044

    - Filename: p8975044_121020_Linux-x86-64.zip

   Patch 25599890

    - Filename: p25599890_121020_Generic.zip

   Patch 19068380

    - Filename: p19068380_121020_Linux-x86-64.zip

   Patch 33649800

    - Filename: p33649800_121020_Linux-x86-64.zip

   Patch 33569841

    - Filename: p33569841_121020_Linux-x86-64.zip

   Patch 21322448

    - Filename: p21322448_121020_Linux-x86-64.zip

   Patch 21626377

    - Filename: p21626377_121020_Linux-x86-64.zip

   Patch 23125826

    - Filename: p23125826_121020_Linux-x86-64.zip

   Patch 32901495

    - Filename: p32901495_121020_Linux-x86-64.zip

   Patch 28653113

    - Filename: p28653113_121020_Generic.zip

   Patch 29842421

    - Filename: p29842421_121020_Linux-x86-64.zip

   Patch 30758943

    - Filename: p30758943_121020_Linux-x86-64.zip

   Patch 31404014

    - Filename: p31404014_121020_Linux-x86-64.zip

 

Apply the required patches and rerun this script.

 You should check the patch READMEs for minimum OPatch version requirements.

The latest OPatch is available from My Oracle Support via Patch 6880880.

 +---------------------------------------------------------------------------------------+

 +---------------------------------------------------------------------------------------+

A consolidated zip file with the required patches for database release

12.1.0.2.0 is available on My Oracle Support via:

   Patch 37327951

    - EBS RELEASE 12.2 CONSOLIDATED DATABASE FIXES FOR JAN 2025

 Note: This zip does not include Release Updates, Bundle Patches or Patch Set Updates.

 +---------------------------------------------------------------------------------------+

 See Doc ID 1594274.1 for any special instructions for these patches.

Note: Footnotes in Doc ID 1594274.1 also apply to corresponding overlay patches.

 

+---------------------------------------------------------------------------------------+

 Finished checking fixes for database TEST: Wed May 14 15:04:20 IST 2025

 Log file for this session: /dbdata/patch/log/checkDBpatch_5217.log

This file should be reviewed for errors after the ETCC run.

 Since we could not download Patch 37327951

    - EBS RELEASE 12.2 CONSOLIDATED DATABASE FIXES FOR JAN 2025

 



Before starting to apply patches take count of invalid objects

  1* select object_name,object_type,owner,status from dba_objects where status='INVALID'

SQL> /

 

OBJECT_NAME               OBJECT_TYPE             OWNER      STATUS

------------------------- ----------------------- ---------- -------

MRP_COMPANY_USERS_SN      MATERIALIZED VIEW       APPS       INVALID

SEL_DOMESTIC_OMEX_XML     PACKAGE BODY            APPS       INVALID

SEL_DOMESTIC_XML          PACKAGE BODY            APPS       INVALID

SEL_HSNCODE_LOAD_PRC      PROCEDURE               APPS       INVALID

SEL_SHIPPED_QTY_CHECKING  PROCEDURE               APPS       INVALID

SEL_HERO_QRCODE_TCS_RPT_P PACKAGE                 APPS       INVALID

KS

 

SEL_OE_KART_ORDER_UPDATE_ PACKAGE BODY            ROAPPS     INVALID

PKG

 

 

OBJECT_NAME               OBJECT_TYPE             OWNER      STATUS

------------------------- ----------------------- ---------- -------

SEL_KARTOPIA_REPORT       PROCEDURE               ROAPPS     INVALID

 

8 rows selected.

 

Run utlrp.sql to validate invalid objects

SQL> @?/rdbms/admin/utlrp.sql

 


Before applying the required patches, shutdown application and database and listener.

In Application server:-

 [appltest@testapp ~]$ . /apdata/erp/EBSapps.env run

[appltest@testapp ~]$ cd $ADMIN_SCRIPTS_HOME

[appltest@testapp scripts]$ adstpall.sh

  

Login to DB server:-

[oraprod@ebsproddb 8975044]$ cd /dbdata/patch/8975044

[oraprod@TEST 8975044]$ sqlplus / as sysdba

SQL> shu immediate

SQL> exit

[oraprod@TEST 8975044]$ lsnrctl stop EBS

 


Apply patches in following order, please review the readme carefully before applying each patches. The list of following patches we received by running etcc dbchecker.

Patch 8975044

[oraprod@testdb]$ cd /dbdata/patch/8975044

[oraprod@non-prod-db 8975044]$ $ORACLE_HOME/OPatch/opatch apply

 

  Patch 25599890

[oraprod@testdb 25599890]$ cd /dbdata/patch/25599890

[oraprod@non-prod-db 25599890]$ $ORACLE_HOME/OPatch/opatch apply

 



While applying this patch we faced above error, as we can see opatch is trying to remove a conflicting patch and expecting a file from a particular path.

 

As a workaround, we copied the file from patch directory to the path it is expecting to have.

This issue may not come if .patch_storage directory is present inside $ORACLE_HOME

 

[oraprod@TEST 22731026_May_25_2016_04_33_55]$ mkdir -p /dbdata/erp/12.1.0/.patch_storage/22731026_May_25_2016_04_33_55/files/rdbms/admin

 

[oraprod@TEST admin]$ cd /dbdata/patch/25599890/files/rdbms/admin

[oraprod@TEST admin]$ cp prvtmeta.plb /dbdata/erp/12.1.0/.patch_storage/22731026_May_25_2016_04_33_55/files/rdbms/admin

 

Then we retried the patch apply.

[oraprod@non-prod-db 25599890]$ $ORACLE_HOME/OPatch/opatch apply

 

Once patch is applied, start the database

SQL>startup

 

 [oraprod@non-prod-db 25599890]$ $ORACLE_HOME/OPatch/datapatch

 

 

  Patch 19068380

[oraprod@testdb 19068380]$ cd /dbdata/patch/19068380

 

SQL> shu immediate

 

[oraprod@non-prod-db 19068380]$ $ORACLE_HOME/OPatch/opatch apply

 

  Patch 33649800

[oraprod@testdb 33649800]$ cd /dbdata/patch/33649800

 

Rollback following patches as these are conflicting patches for patch 33649800

$ORACLE_HOME/OPatch/opatch rollback -id 26794113

$ORACLE_HOME/OPatch/opatch rollback -id 27062381

 

[oraprod@non-prod-db 33649800]$ $ORACLE_HOME/OPatch/opatch apply

 

SQL>startup

 

[oraprod@non-prod-db 33649800]$ $ORACLE_HOME/OPatch/datapatch

 

SQL> shut immediate

 

 

  Patch 33569841

[oraprod@testdb 33569841]$ cd /dbdata/patch/33569841

[oraprod@non-prod-db 33569841]$ $ORACLE_HOME/OPatch/opatch apply

 

 

  Patch 21322448

[oraprod@testdb 21322448]$ cd /dbdata/patch/21322448

[oraprod@non-prod-db 21322448]$ $ORACLE_HOME/OPatch/opatch apply

 

 

 

 

  Patch 21626377

[oraprod@testdb 21626377]$ cd /dbdata/patch/21626377

[oraprod@non-prod-db 21626377]$ $ORACLE_HOME/OPatch/opatch apply

 

 

  Patch 23125826

[oraprod@testdb 23125826]$ cd /dbdata/patch/23125826

[oraprod@non-prod-db 23125826]$ $ORACLE_HOME/OPatch/opatch rollback -id 20830911

 

[oraprod@non-prod-db 23125826]$ $ORACLE_HOME/OPatch/opatch apply

 

Patch 31332620

[oraprod@testdb 31332620]$ cd /dbdata/patch/31332620

[oraprod@non-prod-db 31332620]$ $ORACLE_HOME/OPatch/opatch apply

 

  Patch 32901495

[oraprod@testdb 32901495]$ cd /dbdata/patch/32901495

[oraprod@non-prod-db 32901495]$ $ORACLE_HOME/OPatch/opatch apply

SQL> startup

 

[oraprod@non-prod-db 32901495]$ $ORACLE_HOME/OPatch/datapatch

 

SQL>shu immediate

 

 

  Patch 28653113

[oraprod@testdb 28653113]$ cd /dbdata/patch/28653113

[oraprod@non-prod-db 28653113]$ $ORACLE_HOME/OPatch/opatch apply

 

SQL> startup

 

[oraprod@non-prod-db 28653113]$ $ORACLE_HOME/OPatch/datapatch

 

SQL> shu immediate

 

  Patch 29842421

[oraprod@testdb 29842421]$ cd /dbdata/patch/29842421

[oraprod@non-prod-db 29842421]$ $ORACLE_HOME/OPatch/opatch rollback -id 19779059

[oraprod@non-prod-db 29842421]$ $ORACLE_HOME/OPatch/opatch apply

 

  Patch 30758943

[oraprod@testdb 30758943]$ cd /dbdata/patch/30758943

[oraprod@non-prod-db 30758943]$ $ORACLE_HOME/OPatch/opatch apply

 

 

  Patch 31404014

[oraprod@testdb 31404014]$ cd /dbdata/patch/31404014

[oraprod@non-prod-db 31404014]$ $ORACLE_HOME/OPatch/opatch apply



Post application of above patches, run  checkDBpatch.sh , it should show no further patches required to apply.

Start up the database

SQL> startup 

[oraprod@testdb ETCC]$ lsnrctl start EBS


Please follow the next part here :

No comments:

Post a Comment

Upgrading Oracle E-Business Suite R12.2 Database from 12.1.0.2 to 19c - Part I

Source Environment(12c) Orace Database Version 12.1.0.2 E Business Suite Version R1...