【问题标题】:SSIS Cannot convert between unicode and non unicode...but it's not true, how come?SSIS 无法在 unicode 和非 unicode 之间转换……但这不是真的,怎么会?
【发布时间】:2017-01-31 08:56:40
【问题描述】:

我有一个简单的 DTSX,它接收一些数据,并将其写入 SQL 服务器数据库,在此 DTSX 执行中,它会在某些字段上引发一些错误:

[OLE DB Destination [29]] Error: Column "mobile" cannot convert between unicode and non-unicode string data types.

但正如您从 OLEDB DESTINATION COLUMNS MMAPING 中看到的那样,这不是真的……怎么会?

【问题讨论】:

  • 首先,你的数据模型是怎么说的?是 varchar 还是 nvarchar 类型的移动设备?此外,您是否曾在某一点或另一点更改过 OLE DB 源?如果您创建包含一种类型(varchar 或 nvarchar)的源,然后在查询或高级设置中对其进行修改以改用另一种类型,则 SSIS 会表现得很糟糕。所以基本上 - 如果数据模型是正确的 - 最好的方法是删除 OLE DB 源,然后使用正确的类型重新创建它。

标签: unicode ssis oledb dataflowtask


【解决方案1】:

我已通过在从源表中进行选择时将数据转换为 varchar(max) 来解决此问题。

【讨论】:

    【解决方案2】:

    不久前我有这个。在连接管理器中,我检查了“Unicode”。发现不是 unicode 后,我把它取消了,但是数据流任务中的 OLE DB 输入没有更新,我不得不删除输入并重新创建它。

    【讨论】:

    • 我不明白你在说什么。可以提供图片吗?
    猜你喜欢
    • 2017-01-02
    • 2013-03-10
    • 1970-01-01
    • 2018-08-28
    • 2016-05-25
    • 2017-06-11
    • 2019-06-26
    • 2013-07-13
    • 2019-01-07
    相关资源
    最近更新 更多