sqlserver 中数据导入到mysql中的方法以及注意事项
数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中):
1、若从slqserver中导出的表中不包含中文采用:
bcp mytest.dbo.test out D:\temp\aa.txt -c -t"\t" –T bcp "select * from mytest.dbo.test" queryout D:\yucbtemp\aa.tx
t -c -t"\t" –T -c 是以char存储字段
-T是采用win严重的方式登录sql server ,如果不用-T 必须指定-U 用户名 –P密码 –S 服务器 -t“\t” ,列分隔符
-r”\n” ,行分隔符,默认”\r\n” 此种方式导出的问题,在linux里面认为是ASCII,可以直接load到mysql中去
2、若从slqserver中导出的表中包含中文采用:
sqlcmd -d testDB -E -o "d:\test\aa.txt" -f 65001 -Q "SELECT * FROM testDB..test" -W -w 4000 -s, -h-1 -f :采用utf8-编码导出数据
-s, :是用逗号进行分隔
-h-1:-h和-1之间没有空格,忽略查询的表头
-w:每一列的列宽,太长的列不能采用这样的方式导出,如果超出设定的值,会被截断
-E : windows集成验证模式
-Q:查询的语句
-o:导出文本路径
采用此种方式导出的文本第一行是包含bom的文本,所以第一行导入mysql第一列的值会出错,需要手动修正第一行的数据。
3、导入到mysql中:
truncate TABLE `test_tb`;
LOAD DATA INFILE "test.txt" INTO TABLE test_tb (aaa,bbbb,ccc,xxx);
注意:
文本文件导入到mysql中,文本文件的存放路径应该是(文本文件的存放路径):
show variables like 'datadir%'
此外,文本文件中的 \N 代表mysql 中int类型中的null。
特:当导出的sqlserver的int型字段中含有NULL时候 ,导出到文本中默认为空,导入到mysql中会判断成0,此时 需要将sqlserver中字段中值null转化成非NULL 再导入,之后更新特定非null的值为NULL即可。
--导出(mssql查询编辑器)
EXEC master..xp_cmdshell 'BCP "SELECT [my_code],[my_time],isnull([tj],3),isnull([my_type],3) from [myDB].[dbo].[my_log_0]" queryout D:\temp\my_log\my_log_0.txt -c -t"\t" -T';
go
--导入后更新(mysql中)
update my_log_0 set tj = null where tj =3;
循环导出bat脚本:
-- for /L %%变量 in (起始值,每次增值,结束时的比较值) do 命令
echo off
for /L %%F IN (1,1,99) DO bcp [myDB].[dbo].[my_log_%%F] out D:\temp\log\my_log_%%F.txt -c -t"\t" -T
sqlserver 中数据导入到mysql中的方法以及注意事项的更多相关文章
- talend 将hbase中数据导入到mysql中
首先,解决talend连接hbase的问题: 公司使用的机器是HDP2.2的机器,上面配置好Hbase服务,在集群的/etc/hbase/conf/hbase-site.xml下,有如下配置: < ...
- 22.把hive表中数据导入到mysql中
先通过可视化工具链接mysql,在链接的时候用sqoop 用户登录 在数据库userdb下新建表 保存,输入表名upflow 现在我们需要把hive里面的数据通过sqoop导入到mysql里面 sqo ...
- shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- python将oracle中的数据导入到mysql中。
一.导入表结构.使用工具:navicate premium 和PowerDesinger 1. 先用navicate premium把oracle中的数据库导出为oracle脚本. 2. 在Power ...
- Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段
首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系 ...
- 利用workbench将excel数据导入到MySQL中
数据导入的方式(csv,txt之类) 在MySQL中,数据导入的方式有两种方式 通过第三方客户端导入(workbench) 通过mysql client 方式导入 通过mysql clinet的导入方 ...
- 【转】把sqlite3数据导入到MySQL中
之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据.如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去. 1.SQLit ...
- SQL语句:把Excel文件中数据导入SQL数据库中的方法
1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...
- 将.csv数据导入到mysql中
1.首先看一下我需要导入的数据: 用excel打开的时候显示: 用notepad++打开显示为: 2.使用notepad++打开改变字符集为UTF-8 3,建立表,表中的字段要和文件中的一致 3.执行 ...
随机推荐
- Linux下介绍一款不错的HTML编辑器
编写HTML文档需要编辑器,在windows平台上我们可以用NotePad++,下面介绍一款Linux下的编辑器Komodo Edit,这是一款免费,开源的编辑器. 他对HTML的支持有其独到之处,我 ...
- Premiere使用整理
整理部分自己在使用Premiere CC中遇到的问题和注意点. 1. 新建序列 若是录屏文件,可选择已加入到项目中的视频文件,点击 文件-新建-来自剪辑的序列. 2. 新建字幕 用于在视频中添加文字. ...
- Linux下oracle数据库启动和关闭操作
第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...
- jdk自带的jvm监测程序
jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强 ...
- ump_player在线直播播放器
ump_player在线直播播放器封装,可以支持加载在线直播流 https://github.com/Mrxdh/EveryExercise/blob/master/ump_player%E5%9 ...
- Android中AIDL的理解与使用(一)——跨应用启动/绑定Service
AIDL(Android Interface Definition Language)--安卓接口定义语言 一.startService/stopService 1.同一个应用程序启动Service: ...
- Python中的if __name__='__main__'语句的作用
笔者在自学Python的过程中,对于if __name__='__main__'的用法感到很困惑,在think Python一书中原作者的源代码是这么解释if __name__='__main__'语 ...
- Ubuntu Server 14.04 集成
方便工作出差显示项目整合了下平时常用软件: OS: Ubuntu Server 14.04 VM:VMware Workstation 12.1.0 (不同版本好像会不兼容) 已经安装软件: 1. s ...
- Id.value与document.getElementById("Id").value的区别
如果标签Id在Form表单里面的话,直接Id.value就不能用了,而是要用Form.Id.value来取值或设置值 所以最好用document.getElementById("Id&quo ...
- Be careful about the upper limit of integer
在面对整数时,要留心整数溢出的情况. 在探索一个数有多少个除数的程序中,原本我们只要累加自然数到大于根号N停止即可. 不过因为计算机的整数范围的限制,我们需要判断是否i*i<(i-1)*(i-1 ...