Sql-Server

外部表不是預期的格式 SSIS

  • May 16, 2019

我正在導入.xlsxSQL,但每當我從大.xlsx文件導入時,它都會出現錯誤:

“外部表不是預期的格式”

每當我刪除一些行時,它執行良好。我已將 Run64bit 執行時更改為 False。問題仍然存在。

我正在使用 SQL 2008R2。

此外,當我將其更改為.xls並在 SSIS 2005 中建構包時,它也可以工作。

我正在使用的連接字元串是Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @path + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\";

由於您聲明它在保存為 .xls 文件時有效,我猜您使用了錯誤的連接字元串/提供程序。

您通常會使用

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\path\to\file.xls;Extended Properties=Excel 8.0;

對於 .xls 文件,但您應該使用

Provider=Microsoft.ACE.OLEDB.12.0;Data Source\\path\to\file.xlsx;Extended Properties=Excel 12.0;

Microsoft Jet OLE DB 4.0提供程序支持最高版本 2003的excel。

Microsoft ACE OLEDB 12.0支持新版本的 Excel,但也支持舊版本,方法是在擴展屬性中指定版本。

在 SSIS 中,這是(我相信)通過在連接管理器對話框中選擇 excel 版本來指定的

在此處輸入圖像描述

過了一段時間我發現系統缺少驅動程序,所以一旦我安裝它就可以正常工作

引用自:https://dba.stackexchange.com/questions/198265