Character encoding SSI-从Oracle导入的字符串字段被转换为错误/错误字符
我正在使用SQL Server集成服务(SSIS)将表从Oracle(11g)迁移到SQL Server 2008 R2。该表的字段是int、string(数据类型Unicode strings[DT_WSTR])和转换为图像数据类型的blob类型 SQL Server的排序规则是“Latin1\u General\u 100\u CI\u AS” 工作流程非常严格: 1) ADO NET元素从Oracle源收集数据。 2) 脚本组件通过一些数据转换将inout列与输出列映射 3) SQL Server目标元素将记录存储到目标数据库 在数据迁移期间(总共只有20000条记录),一些字符串字段用亚洲字符存储,而其他具有相同值的字段则被正确移动。 例如:Character encoding SSI-从Oracle导入的字符串字段被转换为错误/错误字符,character-encoding,collation,ssis,data-migration,Character Encoding,Collation,Ssis,Data Migration,我正在使用SQL Server集成服务(SSIS)将表从Oracle(11g)迁移到SQL Server 2008 R2。该表的字段是int、string(数据类型Unicode strings[DT_WSTR])和转换为图像数据类型的blob类型 SQL Server的排序规则是“Latin1\u General\u 100\u CI\u AS” 工作流程非常严格: 1) ADO NET元素从Oracle源收集数据。 2) 脚本组件通过一些数据转换将inout列与输出列映射 3) SQL Se
ID CODE USRNAME DOCNAME
---------------------------------------------------------
120 B-0000001 OAS2491 Help.pdf
121 D-0000465 Charlie Doc1.pdf
122 D-0000465 Charlie Doc2.pdf
123 殹榁鴀ځᡑ䇜쿫 Ɫ灿풑뾧껳쮏⽏� Doc3.pdf
124 D-0000465 Alpha Doc2.pdf
我首先想到的是源表中的一些特殊字符,但我检查了受影响的记录,它们与正确迁移的其他行中的记录完全相同。
ID为123的行具有与行122相同的值,显示良好
在Oracle上:代码是一个VARCHAR2(15字节)
USRNAME是一个VARCHAR2(36字节) SQL Server上的
:
代码是nvarchar(15)
USRNAME是nvarchar(36)
为什么有些行迁移时使用错误的字符,而其他行迁移时使用错误的字符,即使内容相同?我可以通过将“SQL Server destination”组件替换为“OLE DB destination”元素来解决此问题 使用lattest,所有行都正确导入,没有任何错误字符