2011-08-10 41 views
0

我目前的工作,我們要遷移從2005年到SSIS SSIS 2008SSIS 2008列有一個空值

的SSIS包的問題是,當前版本的開發人員使用的事實,在2005年SSIS NULL列的訪問器返回0,而SSIS 2008引發異常。

此外,他們廣泛使用表達式像這樣的:

IIf(Row.X_IsNull, System.DBNull.Value, Row.X) 

的問題是,在2008年SSIS,不管條件是否被設置爲true,該程序仍試圖讀取Row.X和拋出異常。

該軟件包很大,將所有這些IIfs轉換爲帶臨時變量的手動Ifs需要很長時間。

任何幫助將非常感激,

PM

+0

您可以更改源查詢以返回默認值而不是NULL的任何機會?這可能比找到所有失敗的地方要快。 – Bill

+0

訪問者什麼意思是什麼上下文? 你是否嚴格地在腳本組件中講話?我確定我知道你在說什麼,但需要更多信息。 – tvanharp

回答

1

將包保存爲一個文件。這是一個XML文件。在文本編輯器中找到想要更改的代碼,並提取相關部分以便稍後搜索。在BIDS中,進行第一次修復並重新保存文件。然後,您可以在文本編輯器中打開該文件,並查找問題的其他實例(您知道在仔細閱讀早期文件後應該查找哪些實例),並用您的修復程序在文件中生成的相同類型的代碼替換它們。 SAVE,然後在BIDS中開放並測試。