您当前的位置: 首页 > 数据库教程 > MySQL教程 > SQLServer导出数据到MySQL实例介绍

SQLServer导出数据到MySQL实例介绍

作者:不详 来源:网络 发布时间: 2014-07-24 17:51 点击:
1从SQLServer导出数据 执行BCP: bcp ... queryout F:test.txt -c S1.2.3.4 -Usa -P1111 命令参数含义: (1) 导入。 这个动作使用in命令完成,后面跟需要导入的文件名。 (2) 导出。 这个动作使用out命令完成,后面跟需要导出的文件名。 (3) 使用SQL语句导出。 这个动作

SQLServer导出数据到MySQL实例介绍

  1从SQLServer导出数据

  执行BCP:

  bcp "..." queryout "F:test.txt" -c –S1.2.3.4 -Usa -P1111

  命令参数含义:

  (1) 导入。

  这个动作使用in命令完成,后面跟需要导入的文件名。

  (2) 导出。

  这个动作使用out命令完成,后面跟需要导出的文件名。

  (3) 使用SQL语句导出。

  这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。

  (4) 导出格式文件。

  这个动作使用format命令完成,后而跟格式文件名。

  下面介绍一些常用的选项:

  -f format_file

  format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。

  -x

  这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。

  -F first_row

  指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。

  -L last_row

  指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。

  -c

  使用char类型做为存储类型,没有前缀且以"/t"做为字段分割符,以"/n"做为行分割符。

  -w

  和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。

  -t field_term

  指定字符分割符,默认是"/t"。

  -r row_term

  指定行分割符,默认是"/n"。

  -S server_name[ /instance_name]

  指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。

  -U login_id

  指定连接SQL Sever的用户名。

  -P password

  指定连接SQL Server的用户名密码。

  -T

  指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。

  -k

  指定空列使用null值插入,而不是这列的默认值。

  2导入数据到MySQL

  执行Load Data命令:

  load data local infile "F:/test.txt" into table table1character set gbk;

  命令参数含义:

  load data [low_priority] [local] infile 'file_name txt' [replace |ignore]

  into table tbl_name

  [fields

  [terminated by't']

  [OPTIONALLY] enclosed by '']

  [escaped by'' ]]

  [lines terminated by'n']

  [ignore number lines]

  [(col_name, )]

  2.1 Low_priority

  如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。

  2.2 Local

  如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。

  2.3 Replace & Ignore

  replace 和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳 过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。

  2.4分隔符

  terminated by描述字段的分隔符,默认情况下是tab字符(t)

  enclosed by描述的是字段的括起字符。

  escaped by描述的转义字符。默认的是反斜杠(backslash:)

  lines 关键字指定了每条记录的分隔符默认为'n'即为换行符

  2.5导入部分列

  load data infile可以按指定的列把文件导入到数据库中。当我们要把数据的一部分内容导入的时候,,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。比方说,我们要从Access数据库升级到MySQL数据库的时候

  下面的例子显示了如何向指定的栏目(field)中导入数据:

  load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);

  2.6相对&绝对路径

  (1)如果给出一个绝对路径名,服务器使用该路径名。

  (2)如果给出一个有一个或多个前置部件的相对路径名,服务器相对服务器的数据目录搜索文件。

  (3)如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据库目录寻找文件。

  例如: /myfile txt”给出的文件是从服务器的数据目录读取,而作为“myfile txt”给出的一个文件是从当前数据库的数据库目录下读龋

  2.7字符集

  character set gbk指定字符集为gbk,与文件的编码格式(ANSI)保持一致。否则中文数据导入后可能变为乱码。

  2.8灵活导入

  可以在导入的同时,插入一些其他列:

  load data local infile "F:/test.txt"into table table1 set pin='zs',create_date=current_timestamp;

  3常见问题

  3.1无法运行Load Data命令

  执行load data localinfile时报错:

  The used command is not allowed with this MySQL version

  解决方法是:启动mysql客户端是加上--local-infile=1参数

  $ mysql --local-infile=1 –uroot –p123 –h 127.0.0.1

  3.2用BCP导出UTF-8格式

  解决方法是加上-C选项:

  $ bcp "query sql…" queryout "F:test.txt" -c -C65001–S1.2.3.4 -Usa -P1111
分享到:
本文"SQLServer导出数据到MySQL实例介绍"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4