首页 > 解决方案 > SSIS 未能检索到 XXXX 列的长数据

问题描述

我有一个 SSIS 包 (SQL 2017),它将数据从 Access 数据库导入 SQL 数据库。

它出现以下错误:

[Source - MaintenanceDetails [140]] Error: Failed to retrieve long data for column "JobNotes".
[Source - MaintenanceDetails [140]] Error: There was an error with Source - MaintenanceDetails.Outputs[OLE DB Source Output] on Source - MaintenanceDetails. The column status returned was: "DBSTATUS_UNAVAILABLE".
[Source - MaintenanceDetails [140]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "Source - MaintenanceDetails.Outputs[OLE DB Source Output]" failed because error code 0xC0209071 occurred, and the error row disposition on "Source - MaintenanceDetails" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on Source - MaintenanceDetails returned error code 0xC0209029.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.

我已经尝试以下方法来解决基于其他尚未解决问题的 Stackoverflow 问题:

1) 为“BLOBTempStoragePath”和“BufferTempStoragePath”设置路径

2) 将 AutoAdjustBufferSize 设置为 False

3) 创建错误输出以将失败的错误放入另一个选项卡

4) 将“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel”的“TypeGuessRows”设置为 0

5) 我尝试在 Management Studio 中使用导入/导出向导,但收到相同的错误消息。

连接正在使用:

本机 OLE DB\Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序

本机 OLE DB\SQL Server Native Client 11.0

有人对我可以尝试解决的问题有任何其他建议吗?

标签: sql-serverssis

解决方案


我最终所做的就像 ppijnenburg 所描述的那样。一旦我将 Access 表导出到一个逗号分隔的 TEXT 文件,SSIS 处理它就完全没有问题了。

我想这个故事的寓意是从 Access 导入 SQL Server 是混乱的。


推荐阅读