CMP ENTITY BEAN CANNOT WRITE XMLTYPE MORE THEN 4KB (SQLXML),FAILS WITH ORA-01461 (Doc ID 1427152.1)

Last updated on NOVEMBER 05, 2016

Applies to:

Oracle Weblogic Server - Version 10.3.3 to 10.3.6
Information in this document applies to any platform.

Symptoms

This is a followup problem after bug 10432742.

When calling setXmldata() (which maps Java String to Oracle XMLTYPE via SQLXML mapping) on the CMP EJB with a short string, it works okay.

But when trying with a String >4kb it fails with:

java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
[...]
at weblogic.ejb.container.internal.BaseRemoteObject.__WL_postInvokeTxRetry(BaseRemoteObject.java:445)
at lv.gcpartners.psi.ejb.entities.XMLResourceBean_3edve8_EOImpl.setXmldata(XMLResourceBean_3edve8_EOImpl.java:430)
at lv.gcpartners.psi.ejb.entities.XMLResourceBean_3edve8_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
[...]

From the documentation at http://download.oracle.com/docs/cd/E17904_01/web.1111/e13719/cmp_jar_ref.htm#EJBPG905

it would be the "LongString" mapping type that can deal with more than 4K.

But according to bug 10432742, we have to use SQLXML. So the SQLXML type seems to be missing support for data >4kb.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms