我有一个运行在服务器上的每月运行的SQL Server作业.Job正在使用SSIS包,并且应该从数据库中提取数据并创建Excel工作表并将数据复制到Excel 2003中.
由于Excel 2003中的截断问题,我实际上从数据库获得了大约140,000行(Excel支持64,000行).所以我修改了配置文件以支持2007 Excel格式.
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FullPath] + ";Extended Properties=\"Excel 12.0;HDR=YES\"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行作业时,它无法显示错误消息:
"请求的OLE DB提供程序Microsoft.ACE.OLEDB.12.0未注册"
Ale*_*roR 65
总结:安装32位版本的Microsoft Access数据库引擎2010可再发行组件.如果以前安装过,请卸载64位版本.http://www.microsoft.com/en-us/download/details.aspx?id=13255
当版本高于2007(xlsx)时,Excel连接管理器正在尝试使用ACE OLE DB提供程序来访问Excel文件.虽然您的盒子是64位,但您使用的是SQL Server数据工具,它是一个32位应用程序.SSDT没有64位版本.在SSDT中设计软件包时,您使用的是32位进程,该进程只能使用32位提供程序.当您尝试在Excel文件中选择表时,连接管理器需要访问32位版本的ACE OLE DB提供程序,但此提供程序未在您的计算机上注册,只安装了64位版本.
您应下载32位版本的"Microsoft Access数据库引擎2010可再发行组件".当您尝试安装它时,您可能会收到一条错误消息.您应该首先卸载您之前可能安装的64位版本的"Microsoft Access数据库引擎2010可再发行组件".64位版本和32位版本不能在同一主机上共存,因此如果要在它们之间切换,则必须卸载(通过"程序和功能")并安装另一个版本.
卸载完64位版本并安装32位版本的提供程序后,问题就解决了,您最终可以在Excel文件中选择该表.Excel连接管理器现在可以使用ACE OLE DB提供程序(32位版本)来访问Excel文件.
有一种改变方式.在Microsoft Office Excel中打开Excel文件,并将其另存为"Excel 97-2003工作簿".然后,在文件连接中使用新保存的excel文件.
我安装了上面提到的"Microsoft Access数据库引擎2010可再发行组件",并且当它似乎是一个版本问题时得到了侧面跟踪的故障排除问题.
安装"2007 Office System驱动程序:数据连接组件"为我排序.
https://www.microsoft.com/en-us/download/details.aspx?id=23734
| 归档时间: |
|
| 查看次数: |
119930 次 |
| 最近记录: |