2011-05-02 53 views
1

的正確的數據類型我有一個簡單SSIS包挑選從Oracle數據庫和數據插入數據到SQL Server。在DataFlow中,我有3個任務:SSIS不能確定列

  1. 我有一個OLE DB源運行一個非常簡單的查詢。選擇 Col1中,col2的,COL3,COL4,COL5,COL6,COL7從表。
  2. 然後我有轉換COL6一個數據轉換任務,並從Unicode字符串[DT_WSTR]至STRING [DT_STR] COL7。
  3. OLE DB目標(SQL服務器)。

ERROR: SSIS turns the OLE DB Source Task to Red and displays the following error:

There was an error with output column "Col3" (23) on output "OLE DB Source Output" (11). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".

The "output column "Col3" (23)" failed because truncation occurred, and the truncation row disposition on "output column "OS_VISIT_ID" (23)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.

但是COL3不文本其數值,和SSIS正在檢測它作爲Unicode字符串[DT_WSTR]。 我甚至試圖在數據轉換任務轉換爲OLE DB目標之前將Col3轉換爲數字。但我仍然得到同樣的錯誤。

回答

2

點擊錯誤輸出 - 選擇截斷,然後選擇重定向行。然後在源之後添加聯盟階段,以將常規輸出與「錯誤」行連接起來。將數據查看器附加到錯誤行,並查看它抱怨的數據類型。它現在將正常運行該任務。

PS:有些古怪提供商司機-require-你要做到這一點,儘管它從來沒有「失敗」本身。例如Acucorp XBDC驅動程序(讀取一些奇怪的db格式的平面文件) - 如果您沒有設置錯誤輸出,即使每一行都會在經過配置的錯誤行後纔會通過正常輸出,將會失敗。