我有一个SQL Server 2005 SP2数据库,其中有一个名为“poc_resp_city”的属性,其长度为“nvarchar(35)”。
两个月前将其更改为“nvarchar(80)”,但数据仓库中的相同属性仍为“nvarchar(35)”。
经过两个月的正常工作后,SSIS数据加载包现在每次运行时都会返回包失败,并显示以下错误:
“输出列“poc_resp_city”(2250)在输出“OLE DB Source Output”(11)上出错。返回的列状态是:“文本被截断或一个或多个字符在目标代码页中没有匹配项。” SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。组件“Source Table”(1)上的PrimeOutput方法返回了错误代码0xC020902A。当管道引擎调用PrimeOutput()时,该组件返回了一个失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。可能会有更多关于失败的信息发布在此之前。”
关于此问题,未对包或数据库进行任何修改。我知道我可以忽略此错误或做出安排以确保它正常工作,但我想提供一个适当和可接受的答案,解释为什么这个错误会在修改2个月后出现?因为也许我在这种情况下错过了重要的步骤。
重要提示:我甚至没有一条记录超过35个字符,因此永远不会发生截断。(这个警告属于某种SSIS验证步骤)
现在我认为,也许在一段时间后,SSIS包会重新编译自己,现在它看到其元数据中的这个不对齐(35 = / = 80),因为“TruncationRowDisposition”属性被设置为“RD_FailComponent”,所以它会失败该组件。
我将排除代码页选项,因为每个数据库列都是“nvarchar”,而不是“varchar”,所以这不应该是问题。
谢谢!
两个月前将其更改为“nvarchar(80)”,但数据仓库中的相同属性仍为“nvarchar(35)”。
经过两个月的正常工作后,SSIS数据加载包现在每次运行时都会返回包失败,并显示以下错误:
“输出列“poc_resp_city”(2250)在输出“OLE DB Source Output”(11)上出错。返回的列状态是:“文本被截断或一个或多个字符在目标代码页中没有匹配项。” SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。组件“Source Table”(1)上的PrimeOutput方法返回了错误代码0xC020902A。当管道引擎调用PrimeOutput()时,该组件返回了一个失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。可能会有更多关于失败的信息发布在此之前。”
关于此问题,未对包或数据库进行任何修改。我知道我可以忽略此错误或做出安排以确保它正常工作,但我想提供一个适当和可接受的答案,解释为什么这个错误会在修改2个月后出现?因为也许我在这种情况下错过了重要的步骤。
重要提示:我甚至没有一条记录超过35个字符,因此永远不会发生截断。(这个警告属于某种SSIS验证步骤)
现在我认为,也许在一段时间后,SSIS包会重新编译自己,现在它看到其元数据中的这个不对齐(35 = / = 80),因为“TruncationRowDisposition”属性被设置为“RD_FailComponent”,所以它会失败该组件。
我将排除代码页选项,因为每个数据库列都是“nvarchar”,而不是“varchar”,所以这不应该是问题。
谢谢!