2011-05-27 60 views
3

當我運行它,我得到以下錯誤:爲什麼這個SSIS包引發轉換錯誤?

Error at Data Flow Task [SQL Server Destination [164]]: The column "SepticSystemType" can't be inserted because the conversion between types DT_NTEXT and DT_WSTR is not supported.

但根據這個圖是投是合法的:

http://msdn.microsoft.com/en-us/library/ms141704.aspx

我缺少的東西?

+1

只是,圖下,它也說,鑄造DT_WSTR需要的參數。你跟着那個嗎? – Fosco 2011-05-27 17:21:47

回答

6

這是一個可能的選項。您可以使用數據流任務中的Data Conversion Transformation任務將輸入從一種數據類型轉換爲另一種數據類型。以下示例顯示瞭如何完成此操作。

步驟一步的過程:

  1. 創建名爲dbo.DataNTextdbo.DataUnicode兩個表中所示的屏幕截圖#和#2
  2. 用一個數據流任務創建一個包。使用OLE DB綁定,數據轉換任務和OLE DB目標配置數據流任務。請參閱屏幕截圖#以瞭解如何配置任務。 NText是一個OLE DB源任務; Conversion是一項數據轉換轉換任務;而Unicode是OLE DB目標任務。
  3. NText被配置爲從表dbo.DataNText檢索數據。列映射完成如屏幕截圖#所示。
  4. 轉換任務的配置如屏幕截圖#所示。選擇要轉換的列,爲輸出列提供一個名稱。通常它被命名爲Copy of。將數據類型更改爲Unicode String [DT_WSTR]並提供長度255。這些值用於顯示轉換配置如何完成的示例。
  5. Unicode配置爲將數據保存到表dbo.DataUnicode。列映射完成如屏幕截圖#所示。
  6. 示例包執行顯示在屏幕截圖#中。
  7. 這兩個表的示例數據內容顯示在屏幕截圖#。

這也可以使用Derived Column Transformation任務來實現。

希望有所幫助。

截圖#1:

1

截圖#2:

2

截圖#3:

3

截圖#4:

4

截圖#5:

5

截圖#6:

6

截圖#7:

7

+0

+1很好回答Siva!徹底,視覺,真棒。 – Fosco 2011-05-28 03:20:31

1

就在該圖下方,它也表示投射到DT_WSTR需要參數。你跟着那個嗎?

(DT_WSTR,20)將20個字節對或20個Unicode字符轉換爲DT_WSTR數據類型。

編輯:請參閱Siva的答案,通過其他任務實現這一目標。

+0

嗯,這是一個隱含的轉換,它不會在錯誤信息中說。你知道我在哪裏可以找到這個嗎? – 2011-05-27 17:30:58

+0

另外,我是SSIS的全新人員,請告訴我是否有任何意義;) – 2011-05-27 17:31:14

+0

@Abe您必須能夠在您的數據流任務中設置它。沒有看到實際的包裹,我不能再幫忙,這不是我的強項。 – Fosco 2011-05-27 17:34:09

相關問題