问题描述
我有一个超过 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
解决方法
这可能是 Oracle 的限制。它对 XML 标识符的大小有限制:
XML 标识符长度限制 – Oracle XML DB 仅支持长度为 4000 个或更少字符的 XML 标识符。
https://docs.oracle.com/cd/E18283_01/appdev.112/e16659/appjspec.htm
拥有这样的 XML 简直是疯了。