mysql数据库转移到oracle
在研发过程中,可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中,
比如说从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 "SYS_ROLE";
如果要去除这些双引号之类的直接查询,可以这么玩:
直接使用sql重命名表为大写的就可以了,
select 'RENAME "'||t.TABLE_NAME||'" to ' || UPPER(t.TABLE_NAME)||';' from user_tables t
将查询出的结果,粘贴到命令行执行就行了
然后重命名字段为大写
select 'alter table '||t.TABLE_NAME||' rename column "'||t.COLUMN_NAME||'" to '||UPPER(t.COLUMN_NAME)||';' as a,t.COLUMN_NAME from user_tab_columns t;
将查询出的结果,粘贴到命令行执行就行了