Thursday, February 14, 2013

ORA-12899: Column too large or ESB_ACTIVITY table

Problem:

In Oracle SOA Suite 10g, the ESBDT logs located under $ORACLE_HOME/soa_as_1/j2ee/oc4j_esbdt/log/oc4j_esbdt_esbdt_group_1_1/oc4j/log.xml threw the following error:
Caused by: java.sql.SQLException: ORA-12899: value too large for column "ORAESB"."ESB_ACTIVITY"."BPEL2ESBCONVID" (actual: 101,maximum: 100)
It turns out that the ESB_ACTIVITY.BPEL2ESBCONVID column is defined as VARCHAR2(100) and was set using the upgrade script $ORACLE_HOME/soa_as_1/integration/esb/sql/oracle/upgrade_10135_10135mlr_oracle.sql.

Here is an example of data populated in the conversation ID (BPEL2ESBCONVID) column:
bpel://localhost/oaebs/FinanceDepartmentUSA_UpdateGLBalanceInterface~1.0/430060171-BpInv3-BpTry2.9-1
As you can see, this column is 101 characters in length, hence violating the table definition.


Solution:

1. Log in to the database as the ORAESB user.

2. Execute the following command to increase the column length:
ALTER TABLE esb_activity MODIFY (bpel2esbconvid varchar2(200));

Application versions:
  • Oracle SOA Suite 10g

References:
  • Oracle Note ID 1343103.1

No comments: