当前位置:  开发笔记 > 数据库 > 正文

SSIS将char转换为布尔/位

如何解决《SSIS将char转换为布尔/位》经验,为你挑选了2个好方法。

我有一个SSIS包来加载数据; 您可能还记得,当我尝试将它们作为位标志加载到SQL Server中时,数据文件中有标记为Y/N char(1).我正在指定数据文件中的列,String [DT_STR]并且我有一个数据转换任务,根据以下表达式将它们转换为布尔值(我收到相同的转换错误,只是将它们指定为DT_BOOL开头,尽管SSIS要求我说什么值应该考虑为boolean):

[ColumnName] == "Y" ? (DT_BOOL)1 : (DT_BOOL)0

运行该包会出现错误,并告诉我Invalid character value for cast specificationThe value could not be converted because of a potential loss of data实际导入到SQL Server(通过OLE DB目标).

我在这里错过了什么来让它正确转换?



1> Cade Roux..:

试试这个:

(DT_BOOL)([ColumnName] == "Y" ? 1 : 0)

这还具有正确自动设置派生列的数据类型的优点.



2> Wayne Molina..:

我能够通过使用派生列来解决它,而不是替换char列,创建设置为DT_BOOL类似的新列:

[Recycled] == "Y" ? True : False

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有