討論區快速選單
知識庫快速選單
2017必上資安技術訓練課程 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
資料匯入失敗
更改我的閱讀文章字型大小
作者 : 216576(灰狐) 人氣指數超過10000點
[ 貼文 83 | 人氣 10918 | 評價 20 | 評價/貼文 0.24 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/4/16 下午 07:17:35
我使用資料庫工具進行資料匯入,從文字檔滙入某個資料表中,因為資料量很大,有500萬筆左右,在100萬筆左右發生匯入失敗,資料有5個欄位,失敗訊息指出最後一個欄位長度因為過長無法截斷,也就是來源檔案的第5個欄位,其長度可能不一定,後面可能有空白或亂碼之類的位元,試過要略過第5個欄位進行匯入,還是出現一樣的失敗訊息,請問,若想強迫將來源檔案的第5個欄位,以nvarchar(10)的長度匯入資料表的第5個欄位中,不知道是否有辦法可行呢,懇請指點謝謝~
作者 : anson063(Anson)
[ 貼文 4 | 人氣 770 | 評價 50 | 評價/貼文 12.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/19 下午 05:25:25
如果您不想管第 5 個欄位是否超出轉入目的資料表的長度,可以在取第 5 個欄位時,用 Left(field_5, 10) 來固定取左邊10個字元,這樣子就不會有錯啦!
如果再加 rtrim(field_5) 還可將右邊的空白去除
作者 : jonay(jonay) VC++優秀好手C++ Builder優秀好手C++優秀好手貼文超過500則
[ 貼文 887 | 人氣 8025 | 評價 5030 | 評價/貼文 5.67 | 送出評價 30 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/19 下午 06:08:08
寫程式要靈活多變
如果不希望程式修修改改,而是一次做好,就要多思考
明知欄位放不下而硬要截取部份放進去
該筆資料已經失真
如果錯誤的資料當成正確的使用
以後你會在500萬筆資料中花很多時間尋找問題在那

解決的方法:
你可以修改該欄位為不定長度(但是不建議)

或是利用程式處理(做個濾網)
取得資料表的欄位長度
針對不符合長度的資料轉移到另一個問題表中

這樣以後只針對有問題的資料另行處理

作者 : pantc328(好說) C#優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 894 | 人氣 14154 | 評價 3400 | 評價/貼文 3.8 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/20 上午 08:02:46
100萬筆左右.
是左還是右?
如果錯誤資料很少.以及錯誤型態一樣.
那就把那幾筆修正後在匯,或者那幾筆先不要匯.

如過錯誤很多或每個錯誤型態不同,就用SQL 2005 的SSIS去做資料轉換的流程.
它會把錯誤的資料匯到其他的地方去存放.然後你在對這些有問題的資料去做分析..處理.
 板主 : 徵求中
 > SQL Server 2005 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 2005 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 2005
1 小朱 380 
2 老芋仔 300 
3 狼鷹 150 
4 joe 100 
5 Aries 100 
6 100 
7 LionX 50 
8 50 
9 Peter.huang 50 
10 jonay 50 
SQL Server 2005
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2017 程式設計俱樂部 http://www.programmer-club.com.tw/
0.03125