前言

仅记录学习笔记,如有错误欢迎指正。

目的

最近新项目打算上线,需要把老项目(Oracle数据库)的数据迁移到新项目的数据库(Mysql数据库),期间也是大家互相讨论,所产生的比较快的迁移办法,在这记录一下。

方法

  1. 解决字段不一致问题
    1.1、 oracle表中有的字段,mysql表中没有的
    在select查询的时候,直接不查询出该字段。

    1.2 、oracle表中没有的字段,mysql表中有的
    在select查询的时候,直接给字段设置默认值。
    如:select ‘default value’ as sname from student

    1.3、 oracle表和mysql表字段不一致
    在select查询的时候,就字段as 新字段
    如: select sname as student_name …
    以上方式导出来的数据 字段的问题就可以解决了。

  2. 日期处理:
    对于一个在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. 枚举值不一致的处理(也可以是其他字段值)
    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中。若是担心字符编码问题,可以按照下面方法修改一下。

  1. 字符编码问题
    将数据导入到Notepad++中,然后Encoding -> 你需要的格式, 我们使用的是Convert to UTF-8 without BOM.

希望对大家有所帮助~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐