2017-10-16 66 views
1

我有一個數據庫OLE源去往Excel目標。我收到以下錯誤SSIS將SQL數據庫打包到Excel電子表格中的目標Unicode錯誤

數據流錯誤[Excel目標[88]]:列「X」不能在unicode和非unicode字符串數據類型之間轉換。

我在數據轉換中添加了將字符串列更改爲Unicode。這並沒有解決問題。任何指導將不勝感激

+0

你可以看到你的目的地什麼類型您的列正在映射。我會將您的源代碼轉換爲appopiate數據類型。例如。從XXX.XXX選擇cast(columName作爲nvarchar(50)作爲ColumnName - 如果它說錯誤,那麼我會刪除你的任務並重新創建並在你的語句中寫入你的正確的SQL粘貼(它不能很好地處理元數據,所以你需要通過刪除任務或轉到高級選項來更新它)這對我工作正常 – plaidDK

+0

檢查下面的解決方案在數據轉換中添加列的別名並將其映射到excel中 –

+0

可以發佈ssis解決方案的屏幕截圖嗎?從源和目標設置? – plaidDK

回答

0

轉到您的Excel目標組件 - >映射 - >將鼠標懸停在問題欄上,你會發現它是Unicode Str。事情是這樣的:

img

因此,你需要一個data conversion component源列的別名添加到DT_WSTR Unicode String它在Excel目標組件映射。

img2

我複製你的問題,從而爲您提供解決方案。

IF這不起作用,然後刪除這些組件並重新添加它們,因爲這會大多解決您的問題。

+0

這就是我所做的,但我仍然得到這個問題 – sql2015

+0

希望你已經創建了別名並將其映射到目的地,嘗試刪除它們並再次重複(如果可能,在另一個包中)。有時候會發生緩存沒有刷新。 –

+0

感謝您的反饋,我從一開始就開始了,但仍然沒有運氣。我真的不知道爲什麼這不起作用ing – sql2015

0

嘗試使用派生列,而不是數據轉換改造,使用下列表達式

如果目的地是unicode

(DT_WSTR,50)[X] 

否則

(DR_STR,50,1252)[X] 
相關問題