如何将超过 4000 个字符的 XML 插入到 Mule 中的 XMLTYPE 列中

问题描述

我有一个超过 4000 个字符的 XML。 Oracle 中 XMLTYPE 中的数据类型。插入或执行脚本组件不允许我将此 XML 插入到 Oracle 中。我无法更改 Oracle 中的数据类型。有什么方法可以将 XML 插入到 XMLTYPE 列中。在 Java 中,我可以通过从 Connection 创建 sqlXML 对象来实现它。

sqlXML xml = conn.createsqlXML(); //This allowing to save the xml at any size 

我遇到的错误

ORA-01461: can bind a LONG value only for insert into a LONG column 

插入语句

insert into ABC(ID,RESPONSE_XML) values(123,:RESPONSE_XML))

转型

'RESPONSE_XML' : write(payload,'application/xml')

如果我减少有效负载 xml 中的字符数,则其插入成功。我们可以在这里做些什么来插入它。 我使用的 JDBC 驱动程序是 ojdbc14-10g.jar

enter image description here

解决方法

这可能是 Oracle 的限制。它对 XML 标识符的大小有限制:

XML 标识符长度限制 – Oracle XML DB 仅支持长度为 4000 个或更少字符的 XML 标识符。

https://docs.oracle.com/cd/E18283_01/appdev.112/e16659/appjspec.htm

拥有这样的 XML 简直是疯了。