Ssis

如何在 SSIS 中將 Zeros ( 0 ) 更改為 NULL?

  • July 5, 2016

我想將一些零更改為NULL使用 SSIS 2008。在這種情況下,我嘗試了“條件拆分”,其中我test使用以下表達式設置了有問題的列:

REPLACE((DT_WSTR,8)test,"0", NULL(DT_STR,10,1252))

但這似乎不對。表情是紅色的。

我得到錯誤:

數據類型“DT_WSTR 和“DT_I8”與條件運算符不兼容…

創建列表時出錯

$$ Derived Column 9 [141128 $$]:嘗試查找名為“NULL”的輸入列失敗,錯誤程式碼為 0xC0010009。在輸入列集合中找不到指定的輸入列。 創建列表時出錯

$$ Derived Column 9 [141128 $$]:嘗試解析表達式“REPLACE(PLZ,“0”,NULL)”失敗並返回錯誤程式碼0xC00470A2。無法解析表達式。它可能包含無效元素或格式不正確。也可能存在記憶體不足錯誤。 創建列表時出錯

$$ Derived Column 9 [141168 $$]: 嘗試解析表達式 “$$ PLZ $$==0 ? 空(DT_I8,10):$$ PLZ $$” 失敗。表達式可能包含無效標記、不完整標記或無效元素。它可能格式不正確,或者可能缺少必需元素的一部分,例如括號。 創建列表時出錯

$$ Derived Column 9 [141168 $$]: 無法解析表達式“$$ PLZ $$==0 ? 空(DT_I8,15):$$ PLZ $$"。表達式無效,或者存在記憶體不足錯誤

樣本數據:

test     test ideal

0            NULL
120           120
304           304
100           100
222           222
520           520
0             NULL
0             NULL
10            10
11            11
0             NULL

使用Derived Column帶有表達式的轉換[test] == 0 ? NULL(DT_I8) : [test]

您可以使用 nullif 函式:

select nullif(test, 0) as test from ...

這是標準 SQL,但我不確定ssis.

引用自:https://dba.stackexchange.com/questions/125237