【问题标题】:Dynamically load .xlsx files in ssis在 ssis 中动态加载 .xlsx 文件
【发布时间】:2018-01-23 11:33:56
【问题描述】:

我创建了一个 SSIS 来加载 excel 文件。它循环遍历相关文件的指定文件夹,并将每个文件中的数据读入原始数据表,然后我有 SQL 脚本来进行验证并将数据放在相关表中等......一切正常。

但我现在需要让 ssis 包处理加载具有 3 种不同文件结构的 excel 文件。即一个文件有 50 列,一个有 55 列,一个有 60 列。

我尝试过使用脚本任务来加载数据

Insert into <rawdatatable> select * from openrowset('Microsoft.Jet.OLEDB.4.0','excel 8.0; database=D:\SSIS\FileToLoad.xlsx', 'Select * from [Sheet1$]')

但我不断收到以下错误,但添加错误日志不会给出任何其他错误

调用目标抛出异常

我使用的是 SQL Server 2014 和 VS 2013

我不太确定我在这里做什么,任何帮助或指导将不胜感激

谢谢

【问题讨论】:

  • 那个错误并没有告诉我们任何事情。将错误处理添加到您的脚本任务,并输出实际错误。所有该错误实际上意味着“发生错误”。
  • 您使用的是 .XLS 而不是 .XLSX 的连接字符串

标签: sql-server excel ssis etl script-task


【解决方案1】:

您必须使用Microsoft.ACE.OLEDB.12.0 提供程序,请尝试以下操作:

Insert into <rawdatatable> 
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
                         'Excel 12.0;Database=D:\SSIS\FileToLoad.xlsx;HDR=YES', 
                         'SELECT * FROM [Sheet1$]')

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多