2009-02-08 45 views
0

我刚刚从文本字段中将一些数据从MySql传输到MsSql(2K5),现在我的一些字符(如撇号)是? (问号),这表明某种排序规则或字符集错误,对吧?SSIS - 从MySql到MsSql的数据有些字符是?

说实话,我不知道是哪一个,我应该使用

MySQL数据库字符集当期的是utf8_general_ci和MS SQL是SQL_Latin1_General_CP1_CI_AS。

我试图改变MySQL表的字符集,以latin1_swedish_ci,但是这并不帮助

感谢输入

回答

1

您是否尝试过改变目标(SQL Server)的列数据类型NVARCHAR?

utf8_general_ci MySQL列上的排序规则指示Unicode数据类型。如果源代码是Unicode,那么应该是目标 - 为了最简单的过渡。

整理本身在这里扮演一个小角色。他们只是影响比较和排序。

+0

你好,目标是一直nvarchar,它没有任何区别。感谢您的回答tho – roundcrisis 2009-02-08 17:00:07

+0

您能否介绍一下过程中的相关技术细节?什么MySQL/SQL Server版本,MySQL ODBC驱动程序版本,SSIS包/任务设置等?问号清楚地表明了处理链中某个点的字符集转换。 – Tomalak 2009-02-08 17:13:33

0

您可能还需要检查数据流中列的SSIS类型。请记住,数据类型和字符集是在源连接管理器上设置的(可能涉及从原始本机字符集转换)。此外,像派生列或转换之类的任何操作都会有一个字符集,它可以被修改,并且会保留在数据流中该列的沿袭位置。最后,当它到达目的地时,可能会有额外的字符集强制转换。