Sql 将大型xml数据插入DB2

Sql 将大型xml数据插入DB2,sql,db2,Sql,Db2,我有以下情况, 在我的数据库表中,有一列用于存储xml数据。当我尝试使用insert查询将数据插入此表时,我得到的字符串太大异常 我尝试将类型保留为XML和VACHAR(32000),但得到了相同的异常 有人能帮我吗 更新 这是我在插入时遇到的错误 The string constant beginning with "'<!--Sample XML file generated by XMLSpy v2013 sp1 (http://www.altova." is too long..

我有以下情况,

在我的数据库表中,有一列用于存储xml数据。当我尝试使用insert查询将数据插入此表时,我得到的字符串太大异常

我尝试将类型保留为
XML
VACHAR(32000)
,但得到了相同的异常

有人能帮我吗

更新

这是我在插入时遇到的错误

The string constant beginning with "'<!--Sample XML file generated by XMLSpy v2013 sp1 (http://www.altova." is too long.. SQLCODE=-102, SQLSTATE=54002, DRIVER=3.59.81
以“”开头的字符串常量该函数用于将文本字符串转换为DB2的XML数据类型。您是否尝试过通过调用XMLPARSE来包装XML文本


如果您的XML文档位于文件中,则可以添加一个选项,以便更轻松地将文件内容直接拉入XML列。

您可以设置表中每列的大小。请尝试将默认大小(不是最大大小)更改为适当的大小

  • 另外,当您尝试直接使用SQL命令行进行查询时,DBMS必须从其字符串池中创建一个大字符串常量,该常量可以容纳XML(在本例中,它非常大,因此无法创建字符串)。但是,如果您以编程方式查询相同的字符串,则它可以工作
  • 如果相同的错误仍然存在,或者DBMS抛出数据完整性错误,则尝试将数据结构更改为更大的数据结构,如CLOB(在本例中最有可能)或BLOB(在图像和多媒体的情况下)

这有点傻,但答案是使用
XMLPARSE
将XML字符串分为32K个块,并在
CLOB
语句前面加上前缀,以覆盖字符串大小限制

XMLPARSE ( DOCUMENT 
CLOB('<?xml version="1.0"?>') ||
'<aLotOfVeryBigXmlData32kPart1 ......
' ||
'<aLotOfVeryBigXmlData32kPart2 ......
' ||
... etc ...
'<aLotOfVeryBigXmlData32kPartN ......
' ) 
XMLPARSE(文档
CLOB(“”)||

'限制应该是2gb。您是直接插入数据库还是使用某种应用程序?应用程序可能正在截断它。我试图使用查询直接插入它。这是DB2 for i、LUW还是z/OS?我在Windows上使用DB2 Control center。SQL代码是什么?