各位大虾:
俺可以用bcp工具导入ANSI存储的txt文件(tab键分割字段,DOS换行符)
但是不能把UTF8格式的文件通过bcp工具导入数据库。(UTF8格式的文件最后的换行符很怪)尝试着把UTF8格式的文件通过UltraEdit工具转换为ANSI格式文件,倒是可以通过bcp工具导入到SQL SERVER了。请问,是不是需要设定SQL 数据库的哪个参数才可以接受bcp导入UTF8的文本文件?或者bcp不能导入UTF8格式的文本文件到SQL?
那DB也太菜了吧。

解决方案 »

  1.   

    在前台用函数将UTF8转换成UTF16,然后导入
      

  2.   

    这个要看你的文件是怎么得来的了,如果仅仅是换行符的问题倒很好解决(常见的\r\n和\n两种不同的行结束符),如果在格式上还有其它的不同则需要另外再处理:BULK INSERT的语法中有一个FORMATFILE子句,可以指定需要导入的数据文件的格式,你修改一下FORMATFILE中默认的行结束符再试下看行不行
      

  3.   


    谢谢答复。
    但是用函数一个一个的字符转换,太慢了啦。
    我每次导入数据库的数据都有几百万条。。实验过,还不如我用工具UltraEdit转换的快!
      

  4.   


    谢谢答复。 
    但是用函数一个一个的字符转换,太慢了啦。 
    我每次导入数据库的数据都有几百万条。。 实验过,还不如我用工具UltraEdit转换的快!
      

  5.   


    换行符我实验过\r\n和\n 这两种,都不可行的。
    UTF8格式的文件的换行符不是\r\n和\n中的任何一个。我导入数据库的文件已经是格式化好的文件。数据来源是客户方提供,由于他们不是中文系统,但是很多数据却是中文,如果用ANSI存储,则是乱码,只能提供给我们UTF8文件格式才能正常显示。而我这里bcp又没有办法导入UTF8。目前折中办法只有用UE
    转换。。但是偶老板又嫌麻烦。。非要说是不用转换,客户提供的什么数据,都直接用bcp导入进去最好了。 我头疼死了FORMATFILE 参数也研究过,不能搞定不晓得UTF8格式的行结束符是什么。。 
      

  6.   

    不支持 UTF8 格式bcp 可以说主要是针对 sql server 的导入与导出的, 它不是一个通用的导入与导出的处理工具