0

我有以下情况,

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

我尝试将类型保留为XMLand 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
4

3 回答 3

1

XMLPARSE函数可用于将文本字符串转换为 DB2 的 XML 数据类型。您是否尝试过调用 XMLPARSE 来包装您的 XML 文本?

如果您的 XML 文档在一个文件中,那么您可以添加一个UDF,以便更轻松地将文件内容直接拉入 XML 列。

于 2013-05-10T21:50:27.297 回答
0

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

  • 此外,当您尝试使用 SQL 命令行直接查询时,DBMS 必须从其字符串池中创建一个大字符串常量来保存您的 XML(在这种情况下,它非常大,因此无法创建字符串)。但是,如果您以编程方式查询相同的内容,则它可以工作。
  • 如果相同的错误仍然存​​在,或者如果 DBMS 抛出数据完整性错误,则尝试将数据结构更改为更大的数据结构,如 CLOB(在这种情况下很可能)或 BLOB(在图像和多媒体的情况下)。
于 2015-03-02T09:12:14.373 回答
0

这有点傻,但答案是使用XMLPARSEand 将您的 XML 字符串分段为 32K 块,并在前面添加一个CLOB语句来覆盖字符串大小限制

XMLPARSE ( DOCUMENT 
CLOB('<?xml version="1.0"?>') ||
'<aLotOfVeryBigXmlData32kPart1 ......
' ||
'<aLotOfVeryBigXmlData32kPart2 ......
' ||
... etc ...
'<aLotOfVeryBigXmlData32kPartN ......
' ) 
于 2015-09-09T15:34:59.770 回答