Excel導入數(shù)據(jù)庫時出現(xiàn)的文本截斷問題解決方案
在把Excel導入到數(shù)據(jù)庫中時,發(fā)生文本截斷問題:即導入的數(shù)據(jù)每行只有一部分,原始的Excel數(shù)據(jù)為:

忽略錯誤
導入SQLServer2008過程中,如果源數(shù)據(jù)和目標數(shù)據(jù)類型不匹配會導入失敗,所以導入數(shù)據(jù)時會忽略錯誤,這次導入題庫也是,結(jié)果出現(xiàn)了這樣的問題:

仔細觀察你會發(fā)現(xiàn),題目不完整,最長為25個漢字,很明顯這是varchar(50)數(shù)據(jù)類型,但是源數(shù)據(jù)和目的數(shù)據(jù)明明都為文本類型。
不忽略錯誤
如果不忽略錯誤,導入數(shù)據(jù)最后一步會產(chǎn)生這樣的問題:
-正在執(zhí)行(錯誤)
消息
錯誤0xc02020c5:數(shù)據(jù)流任務1:在將列“questionContent”(33)轉(zhuǎn)換為列“questionContent”(119)時數(shù)據(jù)轉(zhuǎn)換失敗。轉(zhuǎn)換操作返回狀態(tài)值4和狀態(tài)文本“文本被截斷,或者一個或多個字符在目標代碼頁中沒有匹配項?!薄?
(SQLServer導入和導出向?qū)?
錯誤0xc020902a:數(shù)據(jù)流任務1:“輸出列“questionContent”(119)”由于發(fā)生截斷而失敗,而且針對“輸出列“questionContent”(119)”的截斷行處理設(shè)置指定截斷時出錯。在指定組件的指定對象上出現(xiàn)截斷錯誤。
(SQLServer導入和導出向?qū)?
錯誤0xc0047022:數(shù)據(jù)流任務1:SSIS錯誤代碼DTS_E_PROCESSINPUTFAILED。處理輸入“數(shù)據(jù)轉(zhuǎn)換輸入”(92)時,組件“數(shù)據(jù)轉(zhuǎn)換0-0”(91)的ProcessInput方法失敗,錯誤代碼為0xC020902A。標識的這個組件從ProcessInput方法返回了一個錯誤。雖然該錯誤是此組件特有的,但卻是致命的,將導致數(shù)據(jù)流任務停止運行。可能在此之前已經(jīng)發(fā)出錯誤消息,提供了有關(guān)失敗的詳細信息。
(SQLServer導入和導出向?qū)?
解決方法
SQL語句
可以確定這個問題不是由數(shù)據(jù)類型不匹配引起,如何解決?既然通過界面方法不能完整導入,可以采用SQL語句的方式再試試:
SELECT*INTO[MaKeSiExam].[dbo].[t_makesi_duoxuanti1]FROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'DataSource=D:/考試系統(tǒng)/題庫/2012年下半年馬克思考試/馬克思_多選題.xls;
ExtendedProperties=Excel8.0')...[Sheet1$]
前提
使用SQL語句的方法可能會產(chǎn)生兩個錯誤:
SQLServer阻止了對組件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的訪問,因為此組件已作為此服務器安全配置的一部分而被關(guān)閉
消息7399,級別16,狀態(tài)1,第1行
鏈接服務器"(null)"的OLEDB訪問接口"Microsoft.Jet.OLEDB.4.0"報錯。提供程序未給出有關(guān)錯誤的任何信息。
消息7303,級別16,狀態(tài)1,第1行
無法初始化鏈接服務器"(null)"的OLEDB訪問接口"Microsoft.Jet.OLEDB.4.0"的數(shù)據(jù)源對象。
解決方法
--啟用AdHocDistributedQueries
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'AdHocDistributedQueries',1
reconfigure
第二個問題,是因為Excel文件和SQLServer沒在同一臺機器,把Excel放到數(shù)據(jù)庫所在機器上執(zhí)行上述SQL語句即可,注意以上導入數(shù)據(jù)庫的語句需要自建表,表字段數(shù)據(jù)類型為Excel中的數(shù)據(jù)類型。
導入完畢,可再關(guān)閉AdHocDistributedQueries
--關(guān)閉AdHocDistributedQueries
execsp_configure'AdHocDistributedQueries',0
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure
導入結(jié)果

- asp實現(xiàn)excel中的數(shù)據(jù)導入數(shù)據(jù)庫
- PHP將Excel導入數(shù)據(jù)庫及數(shù)據(jù)庫數(shù)據(jù)導出至Excel的方法
- Drupal讀取Excel并導入數(shù)據(jù)庫實例
- 利用phpexcel把excel導入數(shù)據(jù)庫和數(shù)據(jù)庫導出excel實現(xiàn)
- PHP 如何利用phpexcel導入數(shù)據(jù)庫
- ASP.NET下將Excel表格中的數(shù)據(jù)規(guī)則的導入數(shù)據(jù)庫思路分析及實現(xiàn)
- C++ 中實現(xiàn)把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫(ACCESS、MSSQL等)實例代碼
相關(guān)文章
Microsoft SQL Server 2008安裝圖解教程(Windows 7)
本文詳細介紹了SQL Server 2008的完整安裝過程,但未介紹關(guān)于SP1補丁安裝說明,在Windows 7系統(tǒng)上運行必須安裝此補丁,對于部分服務的配置也未做詳細的介紹2012-07-07SQL Server 2008數(shù)據(jù)庫誤刪數(shù)據(jù)如何進行數(shù)據(jù)恢復
這篇文章主要為大家詳細介紹了SQL Server 2008數(shù)據(jù)庫誤刪數(shù)據(jù)如何進行數(shù)據(jù)恢復的方法,感興趣的小伙伴們可以參考一下2016-05-05Sql server 2008 express遠程登錄實例設(shè)置 圖文教程
Sql server 2008 express遠程登錄實例設(shè)置 圖文教程,需要的朋友可以參考下。2011-11-11SQL Server2008 數(shù)據(jù)庫誤刪除數(shù)據(jù)的恢復方法分享
今天有個朋友很著急地打電話給我,他用delete語句誤刪除了SQL Server 2008數(shù)據(jù)庫中兩個表中的所有記錄,而這個數(shù)據(jù)庫之前沒有任何備份。讓我?guī)退鉀Q一下,不然他要賠償客戶很多錢2011-10-10一個簡單的后臺與數(shù)據(jù)庫交互的登錄與注冊[sql注入處理、以及MD5加密]
這篇文章主要介紹了一個簡單的后臺與數(shù)據(jù)庫交互的登錄與注冊,包含sql注入處理、以及MD5加密知識點介紹2016-07-07SQL server 2008不允許保存更改的完美解決辦法(圖解)
我重裝系統(tǒng)后就安裝了SQL Server2008R2,第一次使用時在修改表結(jié)構(gòu)的時候經(jīng)碰到這樣一個警告【不允許保存更改。您所做的更改要求刪除并重新創(chuàng)建以下表.對這樣的錯誤提示怎么解決呢?下面小編通過圖文并茂的形式給大家分享解決辦法2017-01-01sql server 2008安裝失敗的解決辦法 徹底卸載老版本!
這篇文章主要介紹了sql server 2008安裝失敗的解決辦法:徹底卸載老版本!感興趣的小伙伴們可以參考一下2016-08-08sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
今天在運行sql server 2008時候提示不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表 的解決辦法2013-05-05SQL Server 2008 數(shù)據(jù)庫中創(chuàng)建只讀用戶的方法
這篇文章主要介紹了SQL Server 2008 數(shù)據(jù)庫中創(chuàng)建只讀用戶的方法,為了保護數(shù)據(jù)庫的安全,需要給不同的使用者開通不同的訪問用戶,那么如何簡單的控制用戶的權(quán)限呢?下面我們就創(chuàng)建一個只讀用戶,給大家學習使用2015-08-08