在研发过程中,可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中,

比如说从mysql中迁移到oracle中,

常用的方法有好些,如下:

1、使用powerdesigner,先连接mysql然后生成mysql的pdm,再把mysql的pdm生成cdm(注:如果设计阶段有cdm那更好,可以直接使用,因为cdm是和具体数据库类型无关的,所以需要转为这个中间模型),最后把cdm生成oracle类型的pdm,最后将oracle类型的pdm转为sql文件完成!

2、在使用上面第一种方法的时候可能会失败,失败的原因有很多种,不具体写了,

如果失败了,还可以使用第二种方法,懒人方法,使用Navicat Premium这个工具,Navicat Premium这个工具有个拖拉的功能,

即:在Navicat Premium上连接mysql和oracle,选择mysql中的表,然后拖拉到oracle的表目录下,然后点击确定拷贝表结构和数据即可!

如下图:
在这里插入图片描述
3、在使用上面第二种方法的时候数据库表及数据可能是拷贝成功了,但是在使用的时候,直接查询表,

如:select * from sys_role 可能会提示表不存在,这是因为拷贝过去的时候会自带oracle用户及双引号,

所以需要这样查询:select * from “C##SWYTH_YS”.“SYS_ROLE”;

如果要去除这些双引号之类的直接查询,可以这么玩:

在第二中方法的基础上,使用Navicat Premium将已经拖拉拷贝到oracle数据库的表及数据导出到sql文件中(即:从oracle中导出),然后在导出的sql文件中修改sql脚本语句,主要修改两个地方(全文替换),很简单的,

1)将"C##SWYTH_YS"." 就把用户替换为空,

2)再将双引号也替换为空,

替换后如下图:
在这里插入图片描述

替换完成后!就很清爽了,然后把已有的oracle表删掉,把修改后的sql文件脚本重新导入,这样就可以正常使用sql查询了!

4、以上三种方式数据量小的话可以这么玩,如果数据很大就比较麻烦了,有可能失败,网上也提供了一些直接转换的小工具下载,可以搜索试试,实在不行就只能一个一个表的单独修改了,先修改表结构,再拷贝数据;
————————————————
版权声明:本文为CSDN博主「漫天雪_昆仑巅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/vtopqx/article/details/89225474

Logo

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

更多推荐