主頁 > 知識庫 > Excel導(dǎo)入數(shù)據(jù)庫時(shí)出現(xiàn)的文本截?cái)鄦栴}解決方案

Excel導(dǎo)入數(shù)據(jù)庫時(shí)出現(xiàn)的文本截?cái)鄦栴}解決方案

熱門標(biāo)簽:地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化 百度競價(jià)排名 AI電銷 Linux服務(wù)器 服務(wù)外包 呼叫中心市場需求 鐵路電話系統(tǒng)
問題
在把Excel導(dǎo)入到數(shù)據(jù)庫中時(shí),發(fā)生文本截?cái)鄦栴}:即導(dǎo)入的數(shù)據(jù)每行只有一部分,原始的Excel數(shù)據(jù)為:
   
忽略錯(cuò)誤
導(dǎo)入SQLServer2008過程中,如果源數(shù)據(jù)和目標(biāo)數(shù)據(jù)類型不匹配會(huì)導(dǎo)入失敗,所以導(dǎo)入數(shù)據(jù)時(shí)會(huì)忽略錯(cuò)誤,這次導(dǎo)入題庫也是,結(jié)果出現(xiàn)了這樣的問題:
 
仔細(xì)觀察你會(huì)發(fā)現(xiàn),題目不完整,最長為25個(gè)漢字,很明顯這是varchar(50)數(shù)據(jù)類型,但是源數(shù)據(jù)和目的數(shù)據(jù)明明都為文本類型。
不忽略錯(cuò)誤
如果不忽略錯(cuò)誤,導(dǎo)入數(shù)據(jù)最后一步會(huì)產(chǎn)生這樣的問題:
復(fù)制代碼 代碼如下:

-正在執(zhí)行(錯(cuò)誤)
消息
錯(cuò)誤0xc02020c5:數(shù)據(jù)流任務(wù)1:在將列“questionContent”(33)轉(zhuǎn)換為列“questionContent”(119)時(shí)數(shù)據(jù)轉(zhuǎn)換失敗。轉(zhuǎn)換操作返回狀態(tài)值4和狀態(tài)文本“文本被截?cái)?,或者一個(gè)或多個(gè)字符在目標(biāo)代碼頁中沒有匹配項(xiàng)?!?。
(SQLServer導(dǎo)入和導(dǎo)出向?qū)?
錯(cuò)誤0xc020902a:數(shù)據(jù)流任務(wù)1:“輸出列“questionContent”(119)”由于發(fā)生截?cái)喽。裔槍Α拜敵隽小皅uestionContent”(119)”的截?cái)嘈刑幚碓O(shè)置指定截?cái)鄷r(shí)出錯(cuò)。在指定組件的指定對象上出現(xiàn)截?cái)噱e(cuò)誤。
(SQLServer導(dǎo)入和導(dǎo)出向?qū)?
錯(cuò)誤0xc0047022:數(shù)據(jù)流任務(wù)1:SSIS錯(cuò)誤代碼DTS_E_PROCESSINPUTFAILED。處理輸入“數(shù)據(jù)轉(zhuǎn)換輸入”(92)時(shí),組件“數(shù)據(jù)轉(zhuǎn)換0-0”(91)的ProcessInput方法失敗,錯(cuò)誤代碼為0xC020902A。標(biāo)識的這個(gè)組件從ProcessInput方法返回了一個(gè)錯(cuò)誤。雖然該錯(cuò)誤是此組件特有的,但卻是致命的,將導(dǎo)致數(shù)據(jù)流任務(wù)停止運(yùn)行??赡茉诖酥耙呀?jīng)發(fā)出錯(cuò)誤消息,提供了有關(guān)失敗的詳細(xì)信息。
(SQLServer導(dǎo)入和導(dǎo)出向?qū)?

解決方法
SQL語句
可以確定這個(gè)問題不是由數(shù)據(jù)類型不匹配引起,如何解決?既然通過界面方法不能完整導(dǎo)入,可以采用SQL語句的方式再試試:
復(fù)制代碼 代碼如下:

SELECT*INTO[MaKeSiExam].[dbo].[t_makesi_duoxuanti1]FROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'DataSource=D:/考試系統(tǒng)/題庫/2012年下半年馬克思考試/馬克思_多選題.xls;
ExtendedProperties=Excel8.0')...[Sheet1$]

前提
使用SQL語句的方法可能會(huì)產(chǎn)生兩個(gè)錯(cuò)誤:
復(fù)制代碼 代碼如下:

SQLServer阻止了對組件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的訪問,因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉
消息7399,級別16,狀態(tài)1,第1行
鏈接服務(wù)器"(null)"的OLEDB訪問接口"Microsoft.Jet.OLEDB.4.0"報(bào)錯(cuò)。提供程序未給出有關(guān)錯(cuò)誤的任何信息。
消息7303,級別16,狀態(tài)1,第1行
無法初始化鏈接服務(wù)器"(null)"的OLEDB訪問接口"Microsoft.Jet.OLEDB.4.0"的數(shù)據(jù)源對象。

解決方法
復(fù)制代碼 代碼如下:

--啟用AdHocDistributedQueries
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'AdHocDistributedQueries',1
reconfigure

第二個(gè)問題,是因?yàn)镋xcel文件和SQLServer沒在同一臺機(jī)器,把Excel放到數(shù)據(jù)庫所在機(jī)器上執(zhí)行上述SQL語句即可,注意以上導(dǎo)入數(shù)據(jù)庫的語句需要自建表,表字段數(shù)據(jù)類型為Excel中的數(shù)據(jù)類型。
導(dǎo)入完畢,可再關(guān)閉AdHocDistributedQueries
復(fù)制代碼 代碼如下:

--關(guān)閉AdHocDistributedQueries
execsp_configure'AdHocDistributedQueries',0
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure

導(dǎo)入結(jié)果
您可能感興趣的文章:
  • asp實(shí)現(xiàn)excel中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫
  • PHP將Excel導(dǎo)入數(shù)據(jù)庫及數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出至Excel的方法
  • Drupal讀取Excel并導(dǎo)入數(shù)據(jù)庫實(shí)例
  • 利用phpexcel把excel導(dǎo)入數(shù)據(jù)庫和數(shù)據(jù)庫導(dǎo)出excel實(shí)現(xiàn)
  • PHP 如何利用phpexcel導(dǎo)入數(shù)據(jù)庫
  • ASP.NET下將Excel表格中的數(shù)據(jù)規(guī)則的導(dǎo)入數(shù)據(jù)庫思路分析及實(shí)現(xiàn)
  • C++ 中實(shí)現(xiàn)把EXCEL的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(ACCESS、MSSQL等)實(shí)例代碼

標(biāo)簽:湖南 仙桃 衡水 銅川 蘭州 湘潭 崇左 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Excel導(dǎo)入數(shù)據(jù)庫時(shí)出現(xiàn)的文本截?cái)鄦栴}解決方案》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266