我在SSIS派生列中与表达式有点争执。
我的源字段是BOOLEAN数据类型。它的目标字段是SQL CHAR数据类型。
**请注意,我没有设计任何一个模式。如果我按照自己的方式,数据类型将匹配。不幸的是,这不是我的情况!
我找到了一个很好的.NET正则表达式转换CHAR-to-BOOL的例子。这与我想要实现的完全相反:
[valToTranslate] == "Y" ? (DT_BOOL)1 : [valToTranslate] == "N" ? (DT_BOOL)0 : NULL(DT_BOOL)
我试图实现此表达式的反向公式但没有成功。这是我失败的尝试:
[valToTranslate] == 0 ? (DT_WSTR,1)"N" : [valToTranslate] == 1 ? (DT_WSTR,1)"Y" : "N"(DT_WSTR)
我不确定对于CHAR SQL数据类型字段,CAST到(DT_WSTR,1)是否正确?我应该使用(DT_STR,1)吗?非常感谢任何帮助。
答案 0 :(得分:4)
你试过一个直截了当的
[valToTranslate] ? "Y" : "N"
这应该有效 - 你可能需要将Y和N转换为DT_STR,如果它假定它们是默认的WSTR。