TXT导入MSSQL 生僻字解决

TXT导入MSSQL 生僻字解决
 
一,基本情况
  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 。所以各有长短,使用看实际情况。
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值