2012-07-05 120 views
0

我們正在將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)提前

感謝的方式

回答

2

其實我正在將它轉換爲varchar,因爲XMLPARSE函數需要一個字符串表達式。

再次閱讀文檔後,我將它轉換爲blob,然後轉換爲XML。它的工作,下面給出了工作的示例查詢以供參考。

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

感謝支持

0

任何造型你在數據庫中執行將由您正在使用的數據類型的限制來contstrianed (例如你的例子中的varchar 32672 KB)。

嘗試使用XMLSERIALIZE代替。