4

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

[Excel 源 [1]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E21。[Excel 源 [1]] 错误:无法检索列“RECOMENDACION”的长数据。[Excel 源 [1]] 错误:组件“Excel 源”(1) 上的输出“Excel 源输出”(9) 出现错误。返回的列状态为:“DBSTATUS_UNAVAILABLE”。

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

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

4

4 回答 4

1

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

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

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

HKEY_LOCAL_MACHINE -> 软件 -> Wow6432Node -> Microsoft -> Jet -> 4.0 -> 引擎 -> Excel

于 2018-02-08T23:28:49.940 回答
0

DefaultBufferMaxRows在我的情况下减少帮助。

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

于 2019-05-09T00:41:56.193 回答
0

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

于 2021-01-06T18:58:27.787 回答
0

我知道这是一个老问题,但我刚刚遇到了这个问题,结果证明是缺少

“C:\SSISTempStoragePath”

目录。
这样一个简单的问题,带有非常神秘的错误消息。SSIS 将在此目录中为源中的每一列和每一行创建一个文件。当心要扫描所有这些文件的防病毒软件。
这些文件被命名为“DTB{>a GUID here<}.tmp”,并且都是零 (0) 字节长。

于 2021-11-17T10:29:06.920 回答