【问题标题】:SSIS Data Flow from MySQL to SQL Server unicode and non-unicdoe从 MySQL 到 SQL Server unicode 和非 unicode 的 SSIS 数据流
【发布时间】:2018-05-04 10:19:39
【问题描述】:

我在 SSIS 中的 Data Flow 任务中收到“cannot convert between unicode and non-unicdoe string data types”错误,我无法弄清楚原因。

  • 我使用“.Net Providers\Odbc Data Provider”提供程序创建了一个到MySQL DBADO.NET 连接,连接字符串如下:Driver={MySQL ODBC 5.3 ANSI Driver};server=....
  • 我有一个OLE DB 连接到一个SQL server
  • 我有一个Data Flow 任务
  • 我有一个使用MySQL 连接的ADO NET Source
  • 我有一个使用SQL Server 连接的OLE DB Destination
  • 源 (MySQL) 中的所有列都是 varchar(50)
  • 目标 (SQL Server) 中的所有列都是 varchar(50)

然而,OLE DB Destination 任务仍然会出现“Column "one" cannot convert between unicode and non-unicode string data types.”错误

我尝试使用Data Conversion 任务将所有内容转换为“string [DT_STR]”,目标任务停止显示红色 X,但执行失败并显示“Error: Data conversion failed while converting column "one" (13) to column "copy of one" (32). The conversion returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page."

【问题讨论】:

标签: mysql sql-server unicode ssis varchar


【解决方案1】:

增加onecopy of one 的列长度。第一/第二列的长度(位)不足。增加长度并尝试。如果 40 则将其更改为 >60。 Unicode 需要更多位来存储字符串。

【讨论】:

  • 那行得通。太感谢了!但我不确定为什么 Unicode 成为问题,因为源表和目标表都是 varchar(50)?
  • @IMTheNachoMan - 为“为什么”提供帮助,请提供SHOW CREATE TABLE 以及onecopy of one 中的值示例。
  • @RickJames 出于隐私原因,我认为我无法获得该信息。我必须在内部解决这个问题。谢谢!
猜你喜欢
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2017-01-02
  • 2013-07-13
  • 1970-01-01
  • 2016-05-25
  • 2017-06-11
相关资源
最近更新 更多