I got ” ORA-14402: updating partition key column would cause a partition change ” error in Oracle database during update table.
ORA-14402: updating partition key column would cause a partition change
Details of error are as follows.
2020-12-01 00:54:57 WARNING OGG-01154 SQL error 14402 mapping SIEBEL.S_ORDER_ITEM to MSDBA.SBL_S_ORDER_ITEM_NEW OCI Error ORA-14402: updating partition key colu mn would cause a partition change (status = 14402), SQL <UPDATE "MSDBA"."SBL_S_ORDER_ITEM_NEW" x SET x."CREATED" = :a1,x."CREATED_BY" = :a2,x."CONFLICT_ID" = :a6, x."ALW_PART_SHIP_FLG" = :a7,x."AUTO_RECV_FLG" = :a8,x."BILLABLE_FLG" = :a9,x."COMPLMNTRY_FLG" = :a10,x."CUSTOMIZED_FLG" = :a11,x."DISCNT_SRC_CD" = :a12,x."DISPLAY_FLG" = :a13,x."EXCL_PRICING_FLG" = :a14,x."HOLD_FLG" = :a15,x."LATE_FLG" = :a16,x."LN_NUM" = :a17,x."LOANER_FLG" = :a18,x."ORDER_ID" = :a19,x."PROCESSED_FLG" = :a20,x."PRO MO_ITEM_FLG" = :a21,x."ROLLUP_FLG" = :a22,x."SHIP_COMPLETE_FLG" = :a23,x."SHIP_TOGETHER_FLG" = :a24,x."SINGLE_SRC_FLG" = :a25,x."WRNTY_RCVR_FLG" = :a26,x."SVC_CHG_INC_ Source Context : SourceModule : [er.replicat.errors] SourceID : [er/replicat/reperrors.cpp] SourceMethod : [repError] SourceLine : [1754] ThreadBacktrace : [15] elements : [/ggateb01/goldengate/product/GG19cFor18cDB/libgglog.so(CMessageContext::AddThreadContext())] : [/ggateb01/goldengate/product/GG19cFor18cDB/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))] : [/ggateb01/goldengate/product/GG19cFor18cDB/libgglog.so(_MSG_QualTableName_QualTableName(CSourceContext*, int, ggs::gglib::ggapp::CQualDBOb jName<(DBObjType)1> const&, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, CMessageFactory::MessageDisposition))] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::er::ReplicatContext::repError(short, int, char const*, extr_ptr_def*, ggs::gglib: :gglcr::CommonLCR const*, std_rec_hdr_def*, char*, ObjectMetadata*, bool))] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat()] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::er::ReplicatContext::processRecord(ggs::gglib::gglcr::CommonLCR const*, ggs::ggli b::gglcr::CommonLCR*, extr_ptr_def*&, extr_ptr_def*&, bool&, int&, bool, RepCsn&))] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::er::ReplicatContext::processReplicatLoop())] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::er::ReplicatContext::run())] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat()] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::Thre adArgs*))] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat(main)] : [/lib64/libc.so.6(__libc_start_main)] : [/ggateb01/goldengate/product/GG19cFor18cDB/replicat()] 2020-12-01 00:54:57 ERROR OGG-01296 Error mapping from SIEBEL.S_ORDER_ITEM to MSDBA.SBL_S_ORDER_ITEM_NEW.
The ORA-14402 error is related with the partitioned key column , where the new record is outside the range of the existing partition.
Row Movement Enable / Disable
To solve this error, you need to enable row movement as follows.
alter table OWNER.TABLE_NAME enable ROW MOVEMENT;
SQL> alter table MSDBA.SBL_S_ORDER_ITEM_NEW enable ROW MOVEMENT;
Table altered.
SQL>
If you want to disable row movement after this operation, you can do it as follows.
alter table OWNER.TABLE_NAME disable ROW MOVEMENT;
SQL> alter table MSDBA.SBL_S_ORDER_ITEM_NEW disable ROW MOVEMENT;
Table altered.
SQL>
Do you want to learn Oracle Database for Beginners, then Click and read the following articles.
Oracle Database Tutorials for Beginners ( Junior Oracle DBA )