SSIS Derived Column中ISNULL表达式替换NULL为空字符串不生效问题
故障原因排查方向
- 列名包含多余尾部空格:你拖拽生成的列名为
[1 (Q1_1) ],括号后存在一个多余空格。如果上游数据源中该列的实际名称不带这个尾部空格,SSIS会无法匹配到对应列,直接抛出表达式错误。你可以核对上游列的实际名称,删除表达式里列名末尾的多余空格,修正后列名应为[1 (Q1_1)]。 - 数据类型不兼容:如果确认列名无误,就是三元表达式的两个返回值类型不匹配。你设置的NULL场景返回值是空字符串
"",属于字符串类型,如果原列[1 (Q1_1)]是数值、日期等非字符串类型,两类数据无法兼容会导致校验失败。这种情况需要先将原列转换为字符串类型再做判断,示例写法如下(可根据实际需求调整字符串长度):ISNULL([1 (Q1_1)]) ? "" : (DT_WSTR, 50)[1 (Q1_1)] - 列属性限制:如果原列是字符串类型,还要确认该列的属性是否允许零长度字符串,部分场景下该属性被禁用也会导致表达式运行失败。
内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles
相关产品推荐
相关产品推荐

