Oracle将数据快速迁移到Mysql数据库
前言仅记录学习笔记,如有错误欢迎指正。目的最近新项目打算上线,需要把老项目(Oracle数据库)的数据迁移到新项目的数据库(Mysql数据库),期间也是大家互相讨论,所产生的比较快的迁移办法,在这记录一下。方法解决字段不一致问题1.1、 oracle表中有的字段,mysql表中没有的在select查询的时候,直接不查询出该字段。1.2 、oracle表中没有的字段,mysql表中有的在select
前言
仅记录学习笔记,如有错误欢迎指正。
目的
最近新项目打算上线,需要把老项目(Oracle数据库)的数据迁移到新项目的数据库(Mysql数据库),期间也是大家互相讨论,所产生的比较快的迁移办法,在这记录一下。方法
-
解决字段不一致问题
1.1、 oracle表中有的字段,mysql表中没有的
在select查询的时候,直接不查询出该字段。1.2 、oracle表中没有的字段,mysql表中有的
在select查询的时候,直接给字段设置默认值。
如:select ‘default value’ as sname from student1.3、 oracle表和mysql表字段不一致
在select查询的时候,就字段as 新字段
如: select sname as student_name …
以上方式导出来的数据 字段的问题就可以解决了。 -
日期处理:
对于一个在oracle中日期类型的字段,如 reg_date
如果它是不带时分秒的,在select查询中直接变为:
select to_char(reg_date,‘yyyy-mm-dd’)
带时分秒的:
select to_char(reg_date,‘yyyy-mm-dd hh24:mi:ss’)
mysql中reg_date我们是dataTime类型的! -
枚举值不一致的处理(也可以是其他字段值)
3.1、也可以在sql中装换:
select …,
case sname
when ‘old value’ then ‘new value’
when …
end as sname,
…
from table
3.2、插入后再更新:
update table set 字段 = ‘new value’ where 字段 = ‘old value’
前面的可以方法通过一个select语句就将数据导出来,然后导入mysql中。若是担心字符编码问题,可以按照下面方法修改一下。
- 字符编码问题
将数据导入到Notepad++中,然后Encoding -> 你需要的格式, 我们使用的是Convert to UTF-8 without BOM.
希望对大家有所帮助~
更多推荐
所有评论(0)