SSIS 动态导入 Excel 个文件
SSIS Dynamically Import Excel Files
所以我创建了一个 ForEach 循环和一个数据流任务来从 Excel 写入 SQL 数据库。使用硬编码的 Excel 源代码一切正常。一旦我更改连接字符串以使用文件路径变量作为数据源,我就会收到此错误:
[Excel Source 1] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager 1" failed with error code 0xC0202009.
我在执行数据流之前在消息框中打印了文件路径,所以我知道变量正在工作。
当然我浏览了大量的答案和教程,但什么也没有。这是我尝试过的:
- 更改连接字符串上的数据源
- 使用 ExcelFilePath 表达式而不是连接字符串
- 更改连接管理器属性中的 Excel 文件名
- 运行 32位包
- 在所有数据流任务和连接管理器中将延迟验证设置为 True
- 删除并创建新的连接管理器
- 以上组合,多多试错
我正在使用 Visual Studio 2013.
非常感谢你的帮助,因为我整个下午都在用这个拔头发:)
我从来没有让它工作,所以我使用 SQL:
将 Excel 文件导入数据库
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Test\Excel_Data.xlsx;', 'SELECT * FROM [Sheet1$]')
https://www.sqlshack.com/query-excel-data-using-sql-server-linked-servers/
所以我创建了一个 ForEach 循环和一个数据流任务来从 Excel 写入 SQL 数据库。使用硬编码的 Excel 源代码一切正常。一旦我更改连接字符串以使用文件路径变量作为数据源,我就会收到此错误:
[Excel Source 1] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager 1" failed with error code 0xC0202009.
我在执行数据流之前在消息框中打印了文件路径,所以我知道变量正在工作。
当然我浏览了大量的答案和教程,但什么也没有。这是我尝试过的:
- 更改连接字符串上的数据源
- 使用 ExcelFilePath 表达式而不是连接字符串
- 更改连接管理器属性中的 Excel 文件名
- 运行 32位包
- 在所有数据流任务和连接管理器中将延迟验证设置为 True
- 删除并创建新的连接管理器
- 以上组合,多多试错
我正在使用 Visual Studio 2013.
非常感谢你的帮助,因为我整个下午都在用这个拔头发:)
我从来没有让它工作,所以我使用 SQL:
将 Excel 文件导入数据库SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Test\Excel_Data.xlsx;', 'SELECT * FROM [Sheet1$]')
https://www.sqlshack.com/query-excel-data-using-sql-server-linked-servers/