SSIS:Unicode数据是列的奇数字节大小应该是偶数字节大小

时间:2018-02-13 12:58:40

标签: sql-server ssis etl

我正在运行一个SSIS包,用于将数据从一个SQL服务器提取到其他SQL Server。源表和目标表具有相同的架构。其中一列是nvarchar(max)数据类型。当我试图插入数据时 - 它给出了nvarchar(max)类型列的跟随错误 -

  

错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。   OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005描述:“第13列的Unicode数据是奇数字节大小。应该是偶数字节大小。”。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

NVarchar存储16位= 2字节字符。

NVarchar列的大小以字节为单位指定。

因此,如果您需要在NVarchar列中存储13个字符数据,则需要将其大小设置为26。

这允许您存储来自世界各地的常用字符。

答案 1 :(得分:0)

尝试使用以下表达式添加派生列,并将其映射到目标列

(DT_WSTR,4000)[column name]

否则,请查看以下文章,其中包含有用的信息: