2011-10-31 49 views
4

我有一個簡單的SSIS作業,可將數據從數據庫導出到平面文件。我使用雙引號作爲文本分隔符。當我在開發機器上運行作業時,所有出口都很好。但是,如果將作業移至使用SQL Server 2008 R2運行Windows 2008的登臺服務器,則CSV文件中的雙引號將導出爲X0022(十六進制)。SSIS將數據導出爲平面文件將雙引號呈現爲十六進制字符

有誰知道這是爲什麼,以及如何解決它?

+0

聽起來您的開發計算機和臨時服務器安裝了不同的sql server Service Pack和/或更新。在登臺服務器上,打開問題包的平面文件連接管理器,並檢查「文本限定符」值是什麼。如果出現這種問題,您將看到_x0022_而不是「作爲值。」 –

+0

David,我沒有在臨時計算機上安裝商業智能開發工作室(有些人想保持這種狀態)。有沒有辦法打開沒有它的平面文件連接管理器?可能是一個xml文件或設置文件? – Thomas

+0

嘗試用記事本打開軟件包,在xml中搜索「TextQualifier」(根據您擁有多少連接管理器可能有多行),您應該找到以下行: _ x0022 _ 將其更改爲

回答

1

雖然湯姆的答案是正確的就沒有解決不了的問題,如果您不能更改任何的環境,最好要進行對SSIS包進行更改,以便它可以在所有環境中運行。這個怎麼樣作爲一個變通:

添加下面的表達式到平面文件連接管理器的TEXTQUALIFIER:

"\"" 

,這將產生所需的雙引號文本限定符,但它是存儲在包xml作爲避免這個問題的表達式。

0

只是,如果有幫助,我解決了這個問題,創建一個腳本任務,我替換文件中所產生的所有「x0022」用正確的值串的最後一步。

相關問題