Excel匯入資料庫時出現的文本截斷問題解決方案_mssql2008

來源:互聯網
上載者:User
問題
在把Excel匯入到資料庫中時,發生文本截斷問題:即匯入的資料每行只有一部分,原始的Excel資料為:
   
忽略錯誤
匯入SQLServer2008過程中,如果來源資料和目標資料類型不匹配會匯入失敗,所以匯入資料時會忽略錯誤,這次匯入題庫也是,結果出現了這樣的問題:
 
仔細觀察你會發現,題目不完整,最長為25個漢字,很明顯這是varchar(50)資料類型,但是來源資料和目的資料明明都為文本類型。
不忽略錯誤
如果不忽略錯誤,匯入資料最後一步會產生這樣的問題:
複製代碼 代碼如下:

-正在執行(錯誤)
訊息
錯誤0xc02020c5:資料流程工作1:在將列“questionContent”(33)轉換為列“questionContent”(119)時資料轉換失敗。轉換操作返回狀態值4和狀態文本“文本被截斷,或者一個或多個字元在目標字碼頁中沒有匹配項。”。
(SQLServer匯入和匯出嚮導)
錯誤0xc020902a:資料流程工作1:“輸出資料行“questionContent”(119)”由於發生截斷而失敗,而且針對“輸出資料行“questionContent”(119)”的截斷行處理設定指定截斷時出錯。在指定組件的指定對象上出現截斷錯誤。
(SQLServer匯入和匯出嚮導)
錯誤0xc0047022:資料流程工作1:SSIS錯誤碼DTS_E_PROCESSINPUTFAILED。處理輸入“資料轉換輸入”(92)時,組件“資料轉換0-0”(91)的ProcessInput方法失敗,錯誤碼為0xC020902A。標識的這個組件從ProcessInput方法返回了一個錯誤。雖然該錯誤是此組件特有的,但卻是致命的,將導致資料流程工作停止運行。可能在此之前已經發出錯誤訊息,提供了有關失敗的詳細資料。
(SQLServer匯入和匯出嚮導)

解決方案
SQL語句
可以確定這個問題不是由資料類型不匹配引起,如何解決?既然通過介面方法不能完整匯入,可以採用SQL語句的方式再試試:
複製代碼 代碼如下:

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

前提
使用SQL語句的方法可能會產生兩個錯誤:
複製代碼 代碼如下:

SQLServer阻止了對組件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉
訊息7399,層級16,狀態1,第1行
連結的伺服器"(null)"的OLEDB提供者"Microsoft.Jet.OLEDB.4.0"報錯。提供者未給出有關錯誤的任何資訊。
訊息7303,層級16,狀態1,第1行
無法初始化連結的伺服器"(null)"的OLEDB提供者"Microsoft.Jet.OLEDB.4.0"的資料來源對象。

解決方案
複製代碼 代碼如下:

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

第二個問題,是因為Excel檔案和SQLServer沒在同一台機器,把Excel放到資料庫所在機器上執行上述SQL語句即可,注意以上匯入資料庫的語句需要自建表,表欄位資料類型為Excel中的資料類型。
匯入完畢,可再關閉AdHocDistributedQueries
複製代碼 代碼如下:

--關閉AdHocDistributedQueries
execsp_configure'AdHocDistributedQueries',0
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure

匯入結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.