将DBCLOB/CLOB转换为XML

问题描述:

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

背景

我们在类型DBCLOB(1073741823)的柱存储一些XML数据。对于我们的一项要求,我们必须将此数据转换为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到XML)提前

感谢的方式

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

再次阅读文档后,我将它转换为blob,然后转换为XML。它的工作,下面给出了工作的示例查询以供参考。

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

感谢支持

任何造型你在数据库中执行将由您正在使用的数据类型的限制来contstrianed (例如你的例子中的varchar 32672 KB)。

尝试使用XMLSERIALIZE代替。