首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS使用OLEDB连接器获取错误的列类型

SSIS使用OLEDB连接器获取错误的列类型
EN

Stack Overflow用户
提问于 2011-10-27 00:01:42
回答 2查看 9.4K关注 0票数 5

在SSIS项目的中途,某些表字段从char(30)更改为nvarchar(30)

但是,在运行SSIS包时,会出现一个错误,声明为cannot convert from unicode to non-unicode。我正在尝试将数据直接从数据库源传输到其目标。

这两个连接使用相同的数据库架构,因此不应该有任何转换。

当检查外部列数据类型时,它显示为D_STR,但现在不是这样了。

我尝试删除源和目标,希望它可以清除任何类型的缓存数据,但它不起作用。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-27 09:43:29

在我看来,数据流任务中的元数据是缓存的,需要刷新以反映新类型。

打开源代码,转到列,取消选中该列,然后选中该列。单击“确定”。元数据现在应该会刷新。

票数 17
EN

Stack Overflow用户

发布于 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

如果不知道你的包是如何工作的,我不能说得更具体,但希望这能让你继续下去。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7905429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档