我有一个位SSIS派生列内使用表达式斗争的。

我的源字段是一个布尔数据类型。它的目标字段是一个SQL CHAR数据类型。

**请注意,我没有设计任何的模式的。如果我有我的方式,数据类型将匹配起来。不幸的是,这不是我的情况!

我发现了一个.NET正则表达式转换CHAR到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)

我不知道,如果投地(DT_WSTR,1)是CHAR SQL数据类型的字段甚至正确吗?我应该使用(DT_STR,1)呢?任何帮助感激。

有帮助吗?

解决方案

您是否尝试过只是一个简单的

[valToTranslate] ? "Y" : "N"

这应该工作 - 你可能需要到Y和N转换为DT_STR,如果它假定他们是WSTR默认

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top