TXT导入MSSQL 生僻字解决
2007-09-27 16:45
204 查看
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 。所以各有长短,使用看实际情况。
一,基本情况
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 。所以各有长短,使用看实际情况。
相关文章推荐
- 解决带有日期格式的txt数据导入oracle报错的问题
- 解决txt导入sql server数据库乱码问题
- 关于MSSQL导入导出时主键与约束丢失的问题解决
- 千万级别 的 txt 数据导入 sqlserver2005 方法,可以容错,数据类型自动转化。解决sql2005数据导入难题
- 关于MSSQL导入导出时主键与约束丢失的问题解决
- 发现MSSQL导入数据时标识列存在的问题,已解决!
- access 导入mssql时遇到问题及解决办法
- 发现MSSQL导入数据时标识列存在的问题,已解决
- 关于Excel中手机号码导入MSSQL中变成Double类型解决办法
- ORACLE导入TXT文件数据的解决思路
- 文件夹批量导入多个txt文件到mysql及问题解决
- 关于MSSQL导入导出时主键与约束丢失的问题解决
- 解决 将txt文件导入到sqlserver中乱码问题
- SQL 数据的导入导出,对远程(MSsql,OracleAccess,)数据库的操作以及读取Excel,txt文件中的数据
- 解决txt文件中数据带有日期类型导入oracle中到不进去的问题
- SQLServer 2008 导入txt文件,中文乱码问题解决办法
- 解决C#中txt文档导入数据库时,中文显示乱码的问题
- MSSQL导入导出时主键与约束丢失的问题解决
- 发现MSSQL导入数据时标识列存在的问题,已解决!