赞
踩
更换数据库,需要将Mysql数据库表框架迁移到oracle数据库中.
数据库版本:
Mysql:5.7.1
Oracle:12.2.0
注:oracle须使用12.2以上版本,低版本不支持长表名
推荐使用Navicat,PLSQL,PLSQL作为oracle语句的编译工具,两者配合使用
备注:PLSQL安装和配置请参考
https://blog.csdn.net/qq_40709468/article/details/81122028
过程中遇到一些典型的问题拿出来讲一下
2. 对应mysql里的数据库,使用PLSQL创建表空间和用户,并赋予用户权限,这里我把mysql上的每个数据库作为一个表空间,然后给对应的用户。对应关系如下:
Mysql:库 cloudbackend oracle: 表空间:cloudbackend
cloud_mes_device cloud_mes_device
… …
3. 使用navicat连接oracle,将mysql里的表结构迁移到oracle对应下的表空间,具体过程跟sqlserver表迁移类似,不多赘述。
4. 迁移成功可以看到表的原始结构语句
将其语句转到sql文件里,并打开,删除“”和cloudbackend.并且将数据类型转换(需要转换的要转换),可以参考另一份文档“mysql与oracle数据类型转换”
5. 在使用PLSQL执行建表脚本调试时遇到特殊字段,如group, index等,如图
这里我把这种特殊字段做了“”处理,调试通过,值得注意的是,在编译时如用到这种特殊字段,需加“”去操作。
建表的脚本调试时会碰到如下的错误:
说明脚本里有DEFRRED,将其改为immediate,执行通过。调试需要耐心,表数据庞大,每张表在改动脚本的时候都要做一次调试
6. 索引的创建需要对应表空间,不多赘述。在处理自增时耗费的时间比较久,在实现id字段自增的过程中,mysql和oracle是完全不同的。举例说明:
Mysql实现id自增
create table test (
id int not null auto_increment,
name,varchar,
primary key (id) );
只要主键添加auto_increment,即可实现自增
Oracle实现自增方法:
i:创建序列
ii: 创建触发器
这两者协同实现表id的自增。
8.为了方便调试开始时最好每一项作为一个单独脚本调试,最后将已调试好的脚本合并到一个脚本中再做一个调试,注意语句中可能会用到/去做语句连接,调试过程中会遇到大量的错误,需要耐心调查和解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。