2012-10-03 75 views
0

我們有一個包含varbinary(max)列的表,該列用於應用程序中的Rich文本字段(不適用於附加文檔)。 我試圖通過一個非常簡單的ssis包將列導出到一個平面文件中。 我的軟件包包含oledb cource和平面文件目標。使用ssis導出Varbinary(max)列

當我打開平面文件輸出,我發現我驚訝的數據被截斷爲255個字符,你有任何想法如何導出所有的數據完全?

Thx尋求幫助。

+0

的意圖是,這一領域是唯一在輸出文件或將它看起來像COL1 | COL2 | col3varbinmax? – billinkc

+0

它不會是輸出文件中的唯一字段,該表還包含普通數據類型,如int和varchar。 – Tamirt

+0

你能提供一個你期望的輸出的例子嗎?顯然截斷varbinary數據 – billinkc

回答

3

雖然等待澄清你打算如何使用它,但我建議看看Export Column Transformation。類似的需求在這個問題上 Using SSIS to extract a XML representation of table data to a file

我扼殺了一個簡單的例子,說明如何做出口varbinary數據。以下查詢在將它們轉換爲varbinary(max)之前將它們連接在一起。它還會生成第二列,這將成爲使用的輸出文件。

WITH STARTER(starter) AS 
(
    -- some simple data 
    SELECT 'a' 
    UNION ALL SELECT 'b' 
    UNION ALL SELECT 'c' 
) 
, VCM(longenough) AS 
(
    SELECT 
     CAST(REPLICATE(T.starter, 8000) AS varchar(max)) 
    FROM 
     STARTER T 
) 
SELECT 
    CAST(V0.longenough + V1.longenough AS varbinary(max)) AS BlobData 
, 'C:\ssisdata\filename.' + CAST(row_number() OVER (ORDER BY (SELECT NULL)) AS varchar(10)) + '.txt' AS FileName 
FROM 
    VCM V0 
    CROSS APPLY 
    VCM V1; 

配置SSIS很簡單。我使用上述查詢作爲我的來源。 Simple data flow

我保證元數據看起來如預期 - 是啊,在BLobData列是一個圖像

metadata

配置導出列轉換。如果文件已經存在,則任務將失敗,如圖所示。您需要檢查允許附加或強制截斷選項。

Export Column Transformation editor

+0

嗨,thx爲答覆。 – Tamirt

+0

你能提供一個你預期的輸出結果的例子嗎?嵌入式回車在varbinary數據中返回時應該如何處理? – billinkc

+0

嗨,我們可能必須與出口專欄合作。並用文件路徑添加另一列。 thx爲你的幫助 – Tamirt

相關問題