在SSIS项目的中途,某些表字段从char(30)更改为nvarchar(30)
但是,在运行SSIS包时,会出现一个错误,声明为cannot convert from unicode to non-unicode。我正在尝试将数据直接从数据库源传输到其目标。
这两个连接使用相同的数据库架构,因此不应该有任何转换。
当检查外部列数据类型时,它显示为D_STR,但现在不是这样了。
我尝试删除源和目标,希望它可以清除任何类型的缓存数据,但它不起作用。
有什么想法吗?
发布于 2011-10-27 09:43:29
在我看来,数据流任务中的元数据是缓存的,需要刷新以反映新类型。
打开源代码,转到列,取消选中该列,然后选中该列。单击“确定”。元数据现在应该会刷新。
发布于 2011-10-27 01:03:27
nvarchar和nchar是unicode。相反,varchar和char是非unicode的。
http://msdn.microsoft.com/en-us/library/ms187752.aspx
因此,如果要将数据从一种数据类型移动到另一种数据类型,则必须执行一些额外的转换(强制转换或转换)。另一个选项是查看您适配器,使char使用DT-STR的SSIS DataType,nvarchar使用SSIS DataType DT-WSTR
http://msdn.microsoft.com/en-us/library/ms141036.aspx
如果不知道你的包是如何工作的,我不能说得更具体,但希望这能让你继续下去。
https://stackoverflow.com/questions/7905429
复制相似问题