【发布时间】:2018-07-23 20:37:50
【问题描述】:
我正在运行一个 SSIS 包,它将数据从一个 SQL Server 拉到另一个 SQL Server。源表和目标表具有相同的架构。其中一列是 nvarchar(max) 数据类型。当我尝试插入数据时 - 它给我 nvarchar(max) 类型列的以下错误 -
错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005 描述:“Unicode 数据是第 13 列的奇数字节大小。应该是偶数字节大小。”。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
这是一个已知的错误,使用
Nvarchar Max会出现此错误,请尝试使用固定长度而不是Navarchar Max或使用整数类型 -
使用派生列表达式并将其更改为固定长度,而不是更改源和目标中的数据类型。
-
@BHouse 感谢您的更新。我创建了一个派生列并且它有效!
标签: sql-server ssis etl