SQLserver導入Excel數據長度限制報錯


先介紹一下寫該博客的背景:由於最近在使用騰訊問卷統計健康信息,導出的Excel表中,備注字段填報的數據過長,最長達到346,而在執行Excel導入表操作時,會出現數據被截斷錯誤,導致數據導入失敗。

百度搜索原因:發現大多數給出的原因是在導入數據過程中,生成的臨時表會根據Excel的前8行或者前3行確定數據類型,所以后面數據長度過長,導入失敗。

在初始建表時給字段設置長度限制也還是報錯。

第一種方法:直接從任務》導入數據》選擇Excel數據源,這種方式長度超過255 數據無法導入成功

第二種方法:使用SQL語句導入數據

需要說明:導入的Excel數據字段與目標數據表的字段一一對應。

------------------首先進行如下設置----------------------

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

-------------------------導入數據語句---------------------

insert into txwj.dbo.yswj1
SELECT * FROM OpenDataSource
( 'Microsoft.ACE.OLEDB.12.0','Data Source="C:\Users\Administrator\Desktop\111111.xlsx";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet2$]

經本人驗證,Excel文件中存在數據超過255長度的,最終文件可以導入成功,但是超過256的字段數據會被截斷,只留下一部分(例如我測試的數據長度是346最后導入之后剩下239)

目前將Excel數據導入SQLserver無法解決長度超過256的問題,問題待解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM