[英]SSIS Null handling, script task
我在使用MS SSIS時遇到麻煩。 我想將資料下載並上傳到數據庫。 我正在尋找最佳實踐,或者為什么會出錯。
我使用控制流(稱為其他任務)。 我下載的數據的一欄中沒有空值。 為此,我不能使用字符串或整數,否則它會以錯誤退出(執行sql任務)。 所以我用對象。 示例:變量sBorderName是對象,列中的數據在此處。
我想將此上傳到另一個數據庫表。 例如,該列中也可以有null。 我無法上傳對象變量,因為我遇到數據庫類型不匹配的情況。
當我嘗試通過腳本任務(C#)消除null時,我使用以下命令: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;
}
我遇到運行時錯誤,沒有任何提示。 該錯誤源於else情況。 我仔細檢查了變量,范圍,寫/讀權限等。
你能幫我么? 這有什么問題? 如果您有更好的主意,該如何解決問題?
西羅
更新:
Dts.Events.FireWarning(14, "Display Script", "sBorderName is:" + Dts.Variables["User::sBorderName"].Value, "", 0);
確實有效,它顯示“ sBorderName是:”
但是,每次對值的轉換都會因運行時錯誤而退出
(String)Dts.Variables["User::sBorderName"].Value
一個人如何正確處理呢?
Convert.ToString(Dts.Variables("sBorderName ").Value)
如果變量有時可以為null,那就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.