语境SSIS批量导入
我试图创建一个SSIS包,以从Excel导入(Microsoft Excel工作表(.xlsx)格式)文件到SQL Server 2012的所有文件都有一个标签具有相同的标签名称。
该过程在我指定单个文件时起作用。
当我尝试使用For Each容器时,该过程失败。
在每个文件枚举我已经创建了一个变量[[email protected]]
错误
在Excel连接管理器的表情,我已经尝试了以下值ConnectionString中:
> - @ [用户:: ExcelFileName]
- “Provider = Microsoft.Jet.OLEDB.4.0; Data Source =”+ @ [User :: ExcelFileName] +“; Extended Properties = Excel 8.0”
- “Provider = Microsoft.ACE.OLEDB.12.0; Data Source =“+ @ [User :: Filename] +”;扩展属性= \“Excel 12.0 \”;“
- “提供者= Microsoft.ACE.OLEDB.12.0;数据源=” + @ [用户名::] + “;扩展属性= \” Excel的12.0; HDR = YES \ “;”
他们都失败了。
这是错误消息:
错误在数据流任务[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规范。”
有什么建议吗?
运行SSIS时是否打开Excel文件?当我忘记关闭时,我经常看到这个错误。 –
不,我没有 - 文件已关闭。 – Ben
你可以得到一个Excel连接手动工作吗?一旦你可以这样做,你可以使用你的变量@ [User :: ExcelFileName]覆盖连接的ServerName属性。 Excel可能很难在SSIS中使用。我从来没有设法得到一个xlsb的工作,只有xls和xlsx。此外,值得检查程序包是否以32/64位模式运行(Project >><项目名称>属性调试> Run64BitRuntime应该等于FALSE)。 –