在SSIS项目中途,某些表格字段已从char(30)
更改为nvarchar(30)
但是,运行SSIS包时,会显示一条错误,指出cannot convert from unicode to non-unicode
。
我正在尝试将数据直接从数据库源传输到目标。
两个连接都使用相同的数据库模式,因此不应进行转换。
检查外部列数据类型时,它会显示D_STR
,但情况不再如此。
我尝试删除源和目标,希望它能清除任何类型的缓存数据,但它不起作用。
有什么想法吗?
答案 0 :(得分:17)
听起来像数据流任务中的元数据被缓存,需要刷新以反映新类型。
打开源,转到列,然后取消选中该列,然后检查列。点击确定。元数据现在应该刷新。
答案 1 :(得分:1)
nvarchar和nchar是unicode。相反,varchar和char是非unicode。
http://msdn.microsoft.com/en-us/library/ms187752.aspx
因此,如果要将数据从一种数据类型移动到另一种数据类型,则必须执行一些额外的转换(CAST或CONVERT)。另一个选项是查看您的适配器,以便char将使用DT-STR的SSIS DataType,nvarchar将使用SSIS DataType DT-WSTR
http://msdn.microsoft.com/en-us/library/ms141036.aspx
在不知道你的包是如何工作的情况下,我不能更具体,但希望这会让你前进。