2016-08-03 46 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應用此,我將尋找這一點,並嘗試更新我的問題。