請教大家
這是使用sql2008,要把EXCEL資料轉到SQL2008的問題,主要是在匯入與匯出的時候,因為我已經把目的欄位調到最大了(nvarchar (max))
但是他在匯入的時候還是會出現下列的訊息:
正在執行 (錯誤)
訊息
錯誤 0xc020901c: 資料流程工作 1: 來源 - Sheet1$.輸出[Excel 來源輸出] 上的 來源 - Sheet1$.輸出[Excel 來源輸出].資料行[EIP_FactorName] 發生錯誤。傳回的資料行狀態是: "文字已截斷,或者一個或多個字元在目標字碼頁裡沒有相符者。"。
而我有把EXCEL資料刪到只剩幾筆資料,是可以匯入成功的,因此應該是資料問題,但是為什麼欄位加到最大了,還是不能匯入呢
煩請大家指點
感謝
我試驗的圖,供參考,應該是有不可字元。
改雙位元組長度應該是位元的兩倍=18才對。
除蟲方式,如Jer5173 建議,在外部環境清乾淨吧!
或是先找出是哪隻蟲,用類似ultra edit這種工具看HEX編碼,用取代方式試試看。
"文字已截斷,或者一個或多個字元在目標字碼頁裡沒有相符者。"
不見得是截斷啊,或者後面的......
有些雜碼是肉眼看不見的,很多時候你認為最不可能的,就是會發生.
有經驗的會寫些過濾程式來過濾.
剛剛看費大在臉書上有推薦一篇文章,保哥有一篇辛酸血淚史.
http://blog.miniasp.com/post/2014/01/15/C-Sharp-String-Trim-ZWSP-Zero-width-space.aspx
被一個看不見的字元....
有時候網路copy一些資料,裡面會帶些怪東西的.
當然啦,這也只是一個方向.最好設法排除.
都已經nvarchar
用unitcode存文字
個人認為應該不會後者的問題
不過小雨大所提的到是一個方向
不知能否把匯不進去的格子先改成「123」之類的簡單文字再試試看
另外發問文中有提到刪到剩幾筆就能存
所以我想確認一下發問者是否用express的版本
這個東西有資料庫大小上的限制
這個是否能檢查一下
我通常會先把Excel資料先拋到Access資料庫,Access資料庫再轉拋到SQL Server
Access資料庫會先幫你的規則修正~