SSIS无法检索列varchar(max)的长数据

时间:2013-06-21 20:21:35

标签: sql sql-server ssis

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

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

正如您所看到的,“RECOMENDACION”列存在一些错误。

注意:错误发生在Excel Source任务中。

请给我一些线索,我坚持这一点。

3 个答案:

答案 0 :(得分:0)

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

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

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\喷气\ 4.0 \发动机\ Excel中

HKEY_LOCAL_MACHINE - >软件 - > Wow6432Node - >微软 - > Jet - > 4.0 - >引擎 - > Excel中

答案 1 :(得分:0)

减少DefaultBufferMaxRows有助于解决我的问题。

这可能很幸运,但是很有帮助。

答案 2 :(得分:0)

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