我期待在SSIS包用Derived Column
數據流組件爲什麼這個SSIS轉換表達式語法是這樣的?
的時候,我打開它,我看到1種轉換:
Derived COLUMN Name : CLIENT_ID
Derived COLUMN: "REPLACE 'CLIENT_ID'"
EXPRESSION: TRIM(CLIENT_ID) == "" ? (DT_STR,9,1252)NULL(DT_STR,9,1252) : CLIENT_ID
DATA TYPE: string [DT-STR]
LENGTH: 9
PRECISION:
SCALE:
CODE PAGE: 1252 (ANSI- LATIN I)
我想了解SSIS表達和我我不確定是否理解語法。
TRIM(CLIENT_ID) == "" ? (DT_STR,9,1252)NULL(DT_STR,9,1252) : CLIENT_ID
我相信代碼在CLIENT_ID場從平面文件讀取和領域作爲字符串來英寸轉換似乎檢查讀取的值是否全部爲空白,如果是,則轉換爲NULL字符串值,否則使用原始的CLIENT_ID
字符串值。
轉換的語法使我困惑,也許是因爲我想把它與C#代碼聯繫起來。我期待爲表達式如下:
TRIM(CLIENT_ID) == "" ? NULL : CLIENT_ID
或許
TRIM(CLIENT_ID) == "" ? (DT_STR,9,1252)NULL : CLIENT_ID
爲什麼NULL由轉換所包圍:(DT_STR,9,1252)
?
這只是在'DT_STR'數據類型發生的情況下,如果你轉換爲'DT_WSTR'這個表達式才能工作'TRIM(CLIENT_ID)==「」? NULL(DT_WSTR,9):(DT_WSTR,9)CLIENT_ID' ...這有點令人困惑。也許這是一個字符串編碼問題 – Hadi
可能重複[這是什麼意思? LEN(TRIM(Weight))== 0? (DT \ _STR,50,1252)NULL(DT \ _STR,50,1252):(DT \ _STR,50,1252)Weight(http://stackoverflow.com/questions/15858210/what-does-this- mean-lentrimweight-0-dt-str-50-1252nulldt-str-50-125) – Hadi