将DBCLOB / CLOB转换为XML

时间:2012-07-05 12:42:23

标签: database db2 clob

我们在将DBCLOB转换/转换为XML时遇到问题。

背景

我们将一些xml数据存储在DBCLOB类型的列中(1073741823)。对于我们的一项要求,我们必须将此数据转换为XML类型,以便我们可以利用Xquery来过滤结果。为了执行此转换,我们使用以下SQL查询将DBCLOB转换为XML数据类型。

SELECT XMLCAST (XMLPARSE (DOCUMENT (CAST (CAST (COLUMN1 AS DBCLOB(32672)) AS VARCHAR (32672)))) AS XML from TABLE1 

问题

对于某些情况,DBCLOB列中的数据大小超过32672 并且,因为我们通过VARCHAR将DBCLOB转换为XML,所以输出 限制为32672,XML转换失败。

实现此转换的方法是什么(clob to xml)

提前致谢

2 个答案:

答案 0 :(得分:3)

实际上我将它转换为varchar,因为XMLPARSE函数需要一个字符串表达式。

再次阅读文档后,我将其转换为blob,然后再转换为XML。它起作用,下面给出了有效的样本查询以供参考。

SELECT 
  XMLCAST (
    XMLPARSE (
      DOCUMENT CAST (
        COLUMN1 AS BLOB
      ) 
      PRESERVE WHITESPACE
    ) as XML
  ) 
FROM 
  TABLE1

感谢您的支持

答案 1 :(得分:0)

您在数据库中执行的任何转换都将受到您正在使用的数据类型限制的限制(例如,示例中为varchar 32672 KB)。

请尝试使用XMLSERIALIZE