【问题标题】:SSIS Failed to retrieve long data for column varchar(max)SSIS 无法检索列 varchar(max) 的长数据
【发布时间】:2013-06-21 20:21:35
【问题描述】:

我想构建一个将 Excel 行导入 SQL Server 表的包,问题是有时会出现错误导致打包过程失败。

[Excel 源 [1]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。一个 OLE 数据库 发生错误。错误代码:0x80040E21。 [Excel 源 [1]] 错误: 未能检索到“推荐”列的长数据。 [Excel 源代码 [1]] 错误:输出“Excel 源输出”出现错误 (9) 在组件“Excel 源”(1) 上。返回的列状态为: “DBSTATUS_UNAVAILABLE”。

如您所见,“推荐”列有问题。

注意:错误出现在 Excel 源任务中。

【问题讨论】:

标签: sql sql-server ssis


【解决方案1】:

我有同样的问题。显然,MS Jet 数据库引擎检查一列的前 8 行以尝试猜测该列的数据类型是什么(无论您指定什么类型)。

当我将注册表项 TypeGuessRows 的值从 8 更改为 0 时,我的问题已修复。 此密钥将位于以下任一位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Microsoft -> Jet -> 4.0 ->Engines -> Excel

【讨论】:

    【解决方案2】:

    减少DefaultBufferMaxRows 对我有帮助。

    这可能是运气,但它有所帮助。

    【讨论】:

      【解决方案3】:

      对我来说,它正在创建一个新的 oledb 源。我正在为我的新查询重用现有的 oledb 源。改变它解决了我的问题

      【讨论】:

        【解决方案4】:

        我知道这是一个老问题,但我刚刚遇到了这个问题,结果发现它丢失了

        “C:\SSISTempStoragePath”

        目录。
        这样一个简单的问题,带有非常神秘的错误消息。 SSIS 将在此目录中为源中的每一列和每一行创建一个文件。当心要扫描所有这些文件的防病毒软件。
        这些文件名为“DTB{>此处为 GUID

        【讨论】:

          猜你喜欢
          • 2011-10-09
          • 2011-04-06
          • 1970-01-01
          • 1970-01-01
          • 2019-08-25
          • 1970-01-01
          • 1970-01-01
          • 2015-11-23
          • 2014-01-17
          相关资源
          最近更新 更多