我有一个SSIS包来加载数据;你可能还记得,当我试图将它们作为位标记加载到sql Server时,有数据文件中的标志是Y / N char(1).我将数据文件中的列指定为字符串[DT_STR],并且我有一个数据转换任务根据以下表达式将它们转换为布尔值(尽管SSIS询问,我收到相同的转换错误,只是将其指定为DT_BOOL)我要说什么值应该考虑为布尔):
[ColumnName] == "Y" ? (DT_BOOL)1 : (DT_BOOL)0
运行程序包给出错误,并告诉我无法转换规范的字符值,因为实际导入sql Server(通过OLE DB目标)可能会丢失数据,因此无法转换该值.
我在这里错过了什么才能正确转换?
解决方法
尝试这个:
(DT_BOOL)([ColumnName] == "Y" ? 1 : 0)
这也具有正确自动设置派生列的数据类型的优点.