2012-07-11 105 views
2

我遇到MS SSIS問題。我想下載並上傳東西到數據庫。我正在尋找最佳做法,或者爲什麼我得到一個錯誤。SSIS空處理,腳本任務

我使用控制流(調用其他任務)。我下載的數據列中有空值。爲此我不能使用字符串或整數,否則它會退出並顯示錯誤(執行sql任務)。所以我使用對象。例如:變量sBorderName是對象,來自列的數據在這裏。

我想將其上傳到其他數據庫表中。例如,該列中也可以爲null。我無法上傳對象變量,因爲我得到的數據庫類型不匹配。

當我試着使用腳本任務(C#),我使用以下方法來消除空S: sBorderName是對象 sBorderNameSafe是字符串

if (Dts.Variables["User::sBorderName"].Value == null) 
{ 
    Dts.Variables["User::sBorderNameSafe"].Value = "NULL ERROR"; 
} 
else 
{ 
    Dts.Variables["User::sBorderNameSafe"].Value = 
     (String)Dts.Variables["User::sBorderName"].Value; 
} 

我得到運行時錯誤,沒有一絲的哪裏不對。該錯誤源自其他情況。我有雙重檢查變量,範圍,寫/讀權限等。

你能幫我嗎?這有什麼問題?如果你有更好的想法,如何解決這個問題?

Sziro

UPDATE:

Dts.Events.FireWarning(14, "Display Script", "sBorderName is:" + Dts.Variables["User::sBorderName"].Value, "", 0); 

工作,它顯示 「sBorderName是:」

但是價值退出的每一個鑄造運行時錯誤

(String)Dts.Variables["User::sBorderName"].Value 

如何能正確處理這個嗎?

+0

我不清楚你的解決方案。你說你需要「下載和上傳東西到數據庫」。你的意思是你需要選擇和插入/更新數據,或者你說你需要ftp文件來回嗎? – billinkc 2012-07-11 20:30:42

+0

是的,普通老選擇,然後插入。我必須使用控制流,但執行sql任務。 (所以不是數據流部分。) – Sziro 2012-07-11 22:37:30

+0

是否有一個原因,你不使用數據流的所有這一切? – billinkc 2012-07-12 01:34:29

回答

0
Convert.ToString(Dts.Variables("sBorderName ").Value) 

是否有竅門,如果變量有時可以爲null。