Oracle将数据快速迁移到Mysql数据库

本文记录了一种快速迁移Oracle数据库数据到Mysql的方法,包括处理字段不一致、日期格式转换及枚举值映射。通过SQL查询选择性导出字段,利用to_char函数处理日期,以及case...when语句转换枚举值。最后提到了Notepad++进行字符编码转换,确保数据导入的准确性。
摘要由CSDN通过智能技术生成

前言

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

目的

最近新项目打算上线,需要把老项目(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.

希望对大家有所帮助~

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值