源有Unicode数据,但我使用的是MySQL 64位ODBC驱动程序,它在部分加载后抛出一个错误(在遇到少数特殊字符后出现错误)。
除了切换到Unicode驱动程序之外,还有其他工作要做吗?
发布于 2018-08-01 21:02:01
此操作:转换( columnName使用ASCII)作为columnName
发布于 2018-08-01 16:52:01
SSIS对元数据的要求非常严格。您有两个选择:切换驱动程序或将源数据重新编码到ANSI。
还有第三种选择:将UNICODE数据提取到CSV文件中,然后通过平面文件连接加载该文件。从那里,您可以指示连接管理器使用ANSI或UNICODE。
我通过平面文件导入实现了一种更可伸缩的方法,允许通过.NET脚本(当然是数字签名)来转换由PowerShell支持的任何编码。在这种情况下,数据提供程序可以向我抛出任何东西,而我可以在加载它之前将其编码到ANSI。
解决方案实际上取决于当前和未来潜在的数据需求是什么。我希望这能帮上忙。
更新:
我不是MySQL专家,因为我不开发它。如果您在服务器中使用本机转换函数,您可能想完全了解它在从UNICODE到ANSI时如何处理varchar和nvarchar字符串的转换。再次,我将重新编码交给.NET,而不是服务器函数。
https://stackoverflow.com/questions/32367311/convert-to-ascii-char-in-sql-server
https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html
https://dev.mysql.com/doc/refman/8.0/en/cast-functions.htmlhttps://stackoverflow.com/questions/51637800
复制相似问题