SSIS从excel文件大容量导入



上下文

我正在尝试创建一个SSIS包,以便从EXCEL(Microsoft EXCEL工作表(.xlsx))文件导入SQL Server 2012。所有文件都有一个具有相同选项卡名称的选项卡。

  • 当我指定一个文件时,这个过程就会起作用。

  • 当我尝试使用For Each容器时,该过程失败。

在For Each File枚举器中,我创建了一个变量[user@ExcelFileName]

错误

在excel连接管理器的表达式中,我尝试了ConnectionString的以下值:

>-@[用户::ExcelFileName]

-"提供程序=Microsoft.Jet.OLEDB.4.0;数据源="+@[用户::ExcelFileName]+";扩展属性=Excel 8.0"

-"提供程序=Microsoft.ACE.OLEDB.12.0;数据源="+@[User::Filename]+";扩展属性=\"Excel 12.0\";"

  • "提供程序=Microsoft.ACE.OLEDB.12.0;数据源="+@[User::Filename]+";扩展属性=\"Excel 12.0;HDR=是\";"

他们都失败了。

这是错误消息:

数据流任务[Excel Source[1]]出错:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器"Excel connection manager"的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的详细信息。

数据流任务[SSSIS.Pipeline]出错:组件"Excel Source"(1)验证失败,返回错误代码0xC020801C。

数据流任务[SSSIS.Pipeline]出错:一个或多个组件验证失败。

数据流任务出错:任务验证过程中出现错误。

包[连接管理器"Excel连接管理器"]出错:SSIS错误代码DTS_E_OLEDBERROR。出现OLE DB错误。错误代码:0x80040E73。OLE DB记录可用。来源:"Microsoft OLE DB服务组件"Hresult:0x80040E73描述:"初始化字符串的格式不符合OLE DB规范。".

有什么建议吗?

您需要在32位环境中运行包,因此请将项目的Run64BitRuntime属性设置为false。然后开始你的包裹。

最新更新