2016-08-03 51 views
2

我与SQL Server 2014的工作我已经申请了Microsoft Access Database Engine 2010 Redistributable到我的服务器。我已经尝试了32位和64位驱动程序。使用32位驱动程序,我可以导出到Excel 97-2003,而不会出现问题。如果我尝试导出到Excel 2007,我Varchar(1000)列失败,出现以下错误:的SQL Server 2014:不能在查询导出VARCHAR(1000),以Excel 2007中作品为Excel 97-2003

Error 0xc0202009: Data Flow Task 1:
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x00040EDA.
An OLE DB record is available.
Source: "Microsoft Access Database Engine"
Hresult: 0x80040E21
Description: "The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.". (SQL Server Import and Export Wizard)

如果我和Varchar(255)代替Varchar(1000)去,它的Excel版本都工作正常。该列映射从Varchar(1000)Longtext,我将其设置为忽略截断错误。

我曾与各种项目运行到这一点,这个项目需要的列的全长和截断是不能接受的。我试着从SMSS和开始菜单中运行向导(32位和64位,尽管如果安装了32位驱动程序,似乎SMSS运行32位版本)。

我可以坚持使用Excel 97-2003一段时间,但最终它将超过65,536行,将不得不去Excel 2007。我不能导出到CSV,因为我的客户要求将它放入一个Excel文件。他们宁愿拥有.xlsx文件,但暂时会接受.xls文件。

出口必须定期运行,所以我需要将包保存为一个文件.dtsx程序。

有没有人对如何解决这一问题的任何想法?

+0

什么导出为CSV文件,然后修改文件与Windows批处理作业? – scsimon

+0

我正在使用SQL Server 2014和Microsoft Access数据库引擎2007,它对我来说工作正常。 –

回答

0

一个我在网站上发现的SAI的解决方法:

You have to include the account you use to execute the package in the performance counters group.

但我不知道如何在SSIS应用此,我将寻找这一点,并尝试更新我的问题。