用于Boolean-to-Char CAST的SSIS派生列表达式

时间:2009-05-12 16:05:51

标签: ssis char boolean expression casting

我在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)吗?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

你试过一个直截了当的

[valToTranslate] ? "Y" : "N"

这应该有效 - 你可能需要将Y和N转换为DT_STR,如果它假定它们是默认的WSTR。