2014-04-22 69 views
1

我正在研究ssis包中的數據流任務,並且我已經多次遇到這個問題。這裏有一個簡單的例子...假設我有一個OLE數據庫源,一個腳本組件作爲轉換,以及一個OLE數據庫目標。ssis數據流正在設置數據類型

這是我的DB源查詢(假設strValue的是MYTABLE varchar數據類型)

select strValue 
from mytable 
where isnumeric(strValue) = 1 

然後,我有一個腳本組件作爲轉換。 strValue是一個輸入值。編輯腳本組件時,在「輸入和輸出」下,我展開輸入變量,直到可以單擊strValue。在「通用屬性」下,它表示數據類型是DT_I4(這是一個我相信的整數,但我從來沒有告訴過它)。

我決定改變我的DB源查詢刪除where子句所以它現在是

select strValue 
from mytable 

現在我要評估是否strValue的是在腳本組件,而不是數字。但是,當我嘗試運行它時,它在到達轉換之前失敗,因爲strValue並不總是一個整數。我想辦法解決這個問題的唯一方法是刪除原始的OLE數據庫源和腳本組件轉換,然後創建新的。

是否有一種簡單的方法將列strValue映射爲字符串,而不是ole db源中的整數? (因爲我從來沒有真正把它作爲第一位的整數!)

回答

1
  1. 源對象上單擊鼠標右鍵中的數據流
  2. 點擊「顯示高級編輯器...」
  3. 點擊在名爲「輸入和輸出屬性」的最後一個選項卡上。

從那裏你會看到「輸入和輸出:」框中的列。然後,您可以單擊各個列並手動設置數據類型。