2015-12-07 66 views
0

语境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规范。”

有什么建议吗?

+0

运行SSIS时是否打开Excel文件?当我忘记关闭时,我经常看到这个错误。 –

+0

不,我没有 - 文件已关闭。 – Ben

+0

你可以得到一个Excel连接手动工作吗?一旦你可以这样做,你可以使用你的变量@ [User :: ExcelFileName]覆盖连接的ServerName属性。 Excel可能很难在SSIS中使用。我从来没有设法得到一个xlsb的工作,只有xls和xlsx。此外,值得检查程序包是否以32/64位模式运行(Project >><项目名称>属性调试> Run64BitRuntime应该等于FALSE)。 –

回答

0

您需要在32位环境中运行包,以便将项目的Run64BitRuntime属性设置为false。之后开始你的包装。

+0

包是32位的。 – Ben