上下文
我正在尝试创建一个SSIS包,以便从EXCEL(Microsoft Excel工作表(.xlsx))文件导入SQL Server 2012.所有文件都有一个具有相同选项卡名称的选项卡。
当我指定单个文件时,此过程有效。
当我尝试使用For Each容器时,该过程失败。
在For Each File Enumerator中,我创建了一个变量[user@ExcelFileName]
错误
在excel连接管理器的表达式中,我尝试了以下ConnectionString值:
> - @ [用户:: ExcelFileName]
- " Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + @ [User :: ExcelFileName] +&#34 ;;扩展属性= Excel 8.0"
- " Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + @ [User :: Filename] +&#34 ;;扩展属性= \" Excel 12.0 \&#34 ;;"
他们都失败了。
这是错误消息:
数据流任务错误[Excel源[1]]:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接管理器" Excel连接管理器"失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。
数据流任务[SSIS.Pipeline]出错:组件" Excel源" (1)验证失败并返回错误代码0xC020801C。
数据流任务[SSIS.Pipeline]出错:一个或多个组件验证失败。
数据流任务错误:任务验证期间出现错误。
程序包错误[连接管理器" Excel连接管理器"]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E73。 OLE DB记录可用。来源:" Microsoft OLE DB服务组件" Hresult:0x80040E73描述:"初始化字符串的格式不符合OLE DB规范。"。
有什么建议吗?
答案 0 :(得分:0)
您需要在32位环境中运行包,因此将项目的Run64BitRuntime属性设置为false。之后开始你的包裹。