我是SSIS包开发的新手。几天以来,我遇到了SSIS包的意外问题。
我的SSIS包是使用两个不同的数据库开发的。在Source中,我使用过SQL Server和Oracle,在目标中我使用过Oracle。 SSIS Package在几年后按预期工作,但我的一个客户端将其服务器从32位升级到64位操作系统。
问题在于使用Oracle数据库。早些时候,我使用MSDORA.1连接Oracle数据库但是微软论坛之一,我读到他们还没有推出MSDORA.1。所以我必须使用OraOELDB.Oracle.1驱动程序转换我的SSIS包。一个服务器中的所有内容都按预期工作,但是当我部署在客户端的服务器上时,它会给我以下错误。
<<MY_COLUMN>> cannot convert unicode to non-unicode string data types
我在Oracle数据库表的所有列中都有VARCHAR2数据类型。
答案 0 :(得分:1)
我在更换司机时也遇到了同样的问题。 Oracle的OLEDB驱动程序将为您提供SSIS中的“DT_WSTR”类型。其他一些驱动程序(例如Attunity)将为您提供相同字段的“DT_STR”类型。
您需要向SSIS包添加一个步骤,将这些字段转换为“DT_STR”数据类型。你需要转换或施放。此主题包含更多信息:SSIS Package: convert between unicode and non-unicode string data types