我正在运行一个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数据是奇数字节大小。应该是偶数字节大小。”。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
NVarchar存储16位= 2字节字符。
NVarchar列的大小以字节为单位指定。
因此,如果您需要在NVarchar列中存储13个字符数据,则需要将其大小设置为26。
这允许您存储来自世界各地的常用字符。
答案 1 :(得分:0)
尝试使用以下表达式添加派生列,并将其映射到目标列
(DT_WSTR,4000)[column name]
否则,请查看以下文章,其中包含有用的信息: