首页 > 解决方案 > 如何在 Mule 的 XMLTYPE 列中插入超过 4000 个字符的 XML

问题描述

我有一个超过 4000 个字符的 XML。XMLTYPE 中 Oracle 中的数据类型。插入或执行脚本组件不允许我将此 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在此处输入图像描述

标签: muledataweave

解决方案


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

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

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

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


推荐阅读