我期待在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