zoukankan      html  css  js  c++  java
  • oracle 迁移到 mysql

    1 : 使用 Navicat Premium 12  做迁移 

    安装 Navicat Premium 12  并且可以连接上MySQL 和 oracle

    2: 迁移

     

     

     

     

     3 : 验证    迁移完后主键 外键  索引 总数据条数  应该是没问题的  ,

                   要自己迁移 函数 存储过程 视图  ,更改一部分字段数据类型 , 自己点一遍每张表的数据 看看是否有问题 例如乱码 .....

    1: 查询主键 ---对比查询总条数就可以
    oracle : --更改用户名 ( CHENG ) 就可以
    select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name
    and au.constraint_type = 'P' and au.table_name in(select table_name from all_tables where owner='CHENG ')

    mysql : --更改数据库名 ( qy ) 就可以
    select table_name,column_name from INFORMATION_SCHEMA.KEY_COLUMN_USAGE t
    where t.table_schema ='qy' and CONSTRAINT_NAME ='PRIMARY'

    2: 查询外键 ---对比查询总条数就可以
    oracle : --更改用户名 (CHENG  ) 就可以
    select * from user_constraints c where c.constraint_type = 'R' and c.table_name
    in(select table_name from all_tables where owner='CHENG ')

    mysql : --更改数据库名 ( qy ) 就可以
    select table_name,column_name from INFORMATION_SCHEMA.KEY_COLUMN_USAGE t
    where t.table_schema ='qy' and CONSTRAINT_NAME !='PRIMARY'

    3 : 查询所有的索引
    oracle : --更改用户名 ( CHENG  ) 就可以
    select * from USER_INDEXES where table_name in(select table_name from all_tables where owner='CHENG ')

    mysql : --更改数据库名 ( qy ) 就可以
    select INDEX_NAME,COLUMN_NAME from INFORMATION_SCHEMA.STATISTICS t where t.INDEX_SCHEMA ='qy'

    4: 查询数据总条数
    MySQL : 执行第一个sql 更改数据库名字 , 将第一个sql 结果手动复制到 第二个sql上 查看结果
    select concat(
    'select "',
    TABLE_name,
    '", count(*) z from ',
    TABLE_SCHEMA,
    '.',
    TABLE_name,
    ' union all'
    ) from information_schema.tables
    where TABLE_SCHEMA='testqy'   ----testqy是数据库名字

    select sum(t.z) from ( 将上面结果手动复制到这里进行查询 ) t

    Oracle : 执行第一个sql 更改用户名 , 将第一个sql 结果手动复制到 第二个sql上 查看结果
    select (
    'select ''' ||
    TABLE_NAME ||
    ''', count(*) z from '||
    TABLE_NAME||
    ' union all'
    ) from all_tables where owner='CHENG'   --这里是用户名

    select sum(t.z) from ( 将上面结果手动复制到这里进行查询 ) t


    5: 类型转换 ------转换的类型基本上不会出现问题
    1:  NUMBER ====decimal 类型   

     2:   如果 number 没有定义小数 存储整型的值  转的时候11以下转int  11以上转 bigint     

           例如  number(10)==int(10)  ,number(11)===bigint    ,    当然也可以转为 decimal 类型 ,因为 decimal 类型 的取值区间是 1--65

      如果number 没有定义长度  , 转到MySQL 上是默认转为 decimal(65,30)  ------这里默认转为最大空间的值 , 这里得手动更改下
    3:  VARCHAR2 ----大于255 的转为 txt 类型, 小于255的转为 VARCHAR    ------转为txt 也没问题 txt长度不限制
    4:  BLOB------longblob =====  应该转为blob  , 这里转为 longblob 也没问题,就是存储空间大了些而已
    5: CLOB-------longtext 
    6: char ------char
    7: TIMESTAMP------ datetime

  • 相关阅读:
    关于Maya Viewport 2.0 API 开发的介绍视频
    春节大假
    Some tips about the life cycle of Maya thread pool
    Can I compile and run Dx11Shader for Maya 2015 on my side?
    How to get current deformed vertex positions in MoBu?
    想加入全球首届的 欧特克云加速计划吗?
    三本毕业(非科班),四次阿里巴巴面试,终拿 offer(大厂面经)
    mac、window版编辑器 webstorm 2016... 永久破解方法。
    node 搭载本地代理,处理web本地开发跨域问题
    js 一维数组,转成嵌套数组
  • 原文地址:https://www.cnblogs.com/xueershewang/p/13190640.html
Copyright © 2011-2022 走看看