程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> TXT導入MSSQL 生僻字解決

TXT導入MSSQL 生僻字解決

編輯:關於SqlServer
一,基本情況
  txt文件導入到MSSQL的時候若碰到漢字後兩位編碼和字段分隔符編碼相同時,導入結果在MSSQL中會後移一列
例如 “弢”,“ 韡 ” 十六進制編碼分別是 8F7C 和ED7C 而字段分隔符號“|”編碼是7C 因此在導入是會將漢字7C誤認為|而結束一個字段


二,解決方案
  MSSQL提供多種文本導入的方法,目前只發現MSSQL的BCP.exe能夠識別生僻漢字

  如下命令行:
  1)
bcp XYZJCG..ZJCG_JYXT_HSJK_HKGDXX in "c:\tmp\KHXX0518.TXT" -b1000 -c -t"|" -r"|"\n -S. -Usa -Psa
  2)
bcp XYZJCG..ZJCG_JYXT_HSJK_KHJBXX in "c:\tmp\KHXX0518.TXT" -b1000 -f c:\tmp\BCP_KHXX.txt -S. -Usa-Psa

  使用到的 bcp幾個參數:
-f format_file
指定格式文件的完整路徑,該格式文件包含以前在同一個表或視圖上使用 bcp 時的存儲響應。當使用由 format 選項所創建的格式文件大容量復制入或復制出數據時,使用此選項。格式文件的創建是可選的。在提示幾個格式問題之後,bcp 將提示是否在格式文件中保存回答。默認文件名為 Bcp.fmt。大容量復制數據時,bcp 可引用一個格式文件,因此不必重新交互輸入以前的回答。如果未使用此選項,也沒有指定 –n、-c、-w、-6 或 -N,則 bcp 將提示輸入格式信息。
      (注意-f參數和後面的模板文件有空格)
-c
使用字符數據類型執行大容量復制操作。此選項不提示輸入每一字段;它使用 char 作為存儲類型,不帶前綴,\t(制表符)作為字段分隔符,\n(換行符)作為行終止符。
-t fIEld_term
指定字段終止符。默認的字段終止符是 \t(制表符)。使用此參數替代默認字段終止符。
-r row_term
指定行終止符。默認的行終止符是 \n(換行符)。使用此參數替代默認行終止符。

 

  這兩種方法均可以導入,但是發現當KHXX0518.TXT文件超過25M(估計)時候,使用第一種方法並不能解決上述問題,而第二種方法無此限制,可第二種方法依賴於模板BCP_KHXX.txt 。所以各有長短,使用看實際情況。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved