oracle导数据到mysql(脚本方式)

  1. 登陆oralce用户。
  2. 新建test.sql并编辑:
set linesize 2000
---set colsep ,
set feedback off
set heading off
set trimout on
set newpage none
set termout off
set trimspool on
spool /home/oracle/XXX.sql
select   字段名1 || ',' || 字段名2 || ','  || to_char(UPDATETIME,'yyyy/mm/dd hh24:mi:ss') || ',' || 字段名3   from XXX;
spool off
exit

spool /home/oracle/XXX.sql后面是你要的导出路径和导出文件名,最好是txt结尾的,不是的话等导完需要改名。
之后是select语句,字段和表名根据实际更改,日期要用to_char进行转换。

  1. 运行命令sqlplus -s 用户名/密码@实例名 @test.sql进行导出。
  2. 把导出的文件传到mysql所在主机。
  3. 登陆mysql,输入show global variables like 'local_infile';查看是否开启了导入文件功能,是off的话运行set global local_infile='ON';来开启。
  4. 退出mysql,再用mysql -u root -p --local-infile=1命令重新登陆。
  5. 进入你需要的库来执行以下命令。
load data local infile '/data01/zhu/XXX.txt' into table table_name character set utf8 fields terminated by ',';

/data01/zhu/XXX.txt是你oracle导出文件的位置,只支持txt文件fields terminated by ','意思是你字段间的分隔符。一般没有中文用character set utf8,有中文用character set gb2312,不然可能会报错。

PS:180万条数据导进去的时间大概是2分钟。但是700万数据目前超过四小时还没导完,建议分割来提高效率。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容