今天有一个需求,立了一个新项目,新项目初步定了使用了现有的框架,但数据库要求由原来的mysql改成oracle,所以原来的基础版本的数据库脚本就需要修改成符合oracle的脚本,修改完成后,总结了一下,大致需要修改的地方如下:

建表:create table
1、mysql的ID自增长
2、所有的表名、字段名的引号去掉(包括建表“表名”、“字段名”、主键“字段名”,索引的索引名称、字段名,外键的外键名称、表名、字段名 )
3、驱动、字符集等去掉
4、字段注释修改
5、索引修改
6、字段的类型修改,以下数据类型对应关系
mysql                                                                             oracle

int(5)                                      <-->               number(5,0)             #5为长度,0为小数点精确数
datetime                                <-->               date
smallint(5)                             <-->               number(5,0)
float(5,2)、double(5,2)          <-->               number(5,2)              #5为长度,2为小数精确数
char(8)、varchar(8)              <-->               varchar2(8)
text                                       <-->                clob

示例一:
mysql:
CREATE TABLE `fq_permission` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`PID` int(11) DEFAULT NULL COMMENT '父节点名称',
`NAME` varchar(50) NOT NULL COMMENT '名称',
`TYPE` varchar(20) DEFAULT NULL COMMENT '类型:菜单or功能',
`SORT` int(11) DEFAULT NULL COMMENT '排序',
`URL` varchar(255) DEFAULT NULL,
`PERM_CODE` varchar(50) DEFAULT NULL COMMENT '菜单编码',
`ICON` varchar(255) DEFAULT NULL,
`STATE` varchar(10) DEFAULT NULL,
`DESCRIPTION` text,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8;        #转成oracle时,去除驱动、字符集等

oracle:
CREATE TABLE fq_permission (                #变化:去引号
ID NUMBER(11) NOT NULL,                  #变化:修改数据类型、去引号、去自增长
PID NUMBER(11) DEFAULT NULL ,              #变化:修改数据类型、去引号、去注释
NAME varchar2(50) NOT NULL ,               #变化:同上
TYPE varchar2(20) DEFAULT NULL,              #变化:同上
SORT NUMBER(11) DEFAULT NULL,              #变化:同上
URL varchar2(255) DEFAULT NULL,                #变化:修改数据类型、去引号
PERM_CODE varchar2(50) DEFAULT NULL,            #变化:修改数据类型、去引号、去注释
ICON varchar2(255) DEFAULT NULL,                #变化:修改数据类型、去引号
STATE varchar2(10) DEFAULT NULL,                #变化:修改数据类型、去引号
DESCRIPTION clob,                        #变化:修改参数类型、去引号
PRIMARY KEY (ID)                        #变化:去引号
);
COMMENT ON COLUMN fq_permission.PID is '父节点名称';     #字段注释
COMMENT ON COLUMN fq_permission.NAME is '名称';
COMMENT ON COLUMN fq_permission.TYPE is '类型:菜单or功能';
COMMENT ON COLUMN fq_permission.SORT is '排序';
COMMENT ON COLUMN fq_permission.PERM_CODE is '菜单编码';

示例二:
mysql:
CREATE TABLE `fq_user_role` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` int(11) NOT NULL,
`ROLE_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `FK_USER_ROL_REFERENCE_ROLE` (`ROLE_ID`) USING BTREE,
KEY `FK_USER_ROL_REFERENCE_USERS` (`USER_ID`) USING BTREE,
CONSTRAINT `fq_user_role_ibfk_1` FOREIGN KEY (`ROLE_ID`) REFERENCES `fq_role` (`ROLE_ID`),
CONSTRAINT `fq_user_role_ibfk_2` FOREIGN KEY (`USER_ID`) REFERENCES `fq_user` (`USER_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

oracle:
drop table fq_user_role;
CREATE TABLE fq_user_role (
ID number(11) NOT NULL,
USER_ID number(11) NOT NULL,
ROLE_ID number(11) NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT fq_user_role_ibfk_1 FOREIGN KEY (ROLE_ID) REFERENCES fq_role (ROLE_ID),
CONSTRAINT fq_user_role_ibfk_2 FOREIGN KEY (USER_ID) REFERENCES fq_user (USER_ID)
);
#索引另外创建
create index FK_USER_ROL_REFERENCE_ROLE on fq_user_role(ROLE_ID);
create index FK_USER_ROL_REFERENCE_USERS on fq_user_role(USER_ID);

插入数据:insert into
1、所有的表名、字段名的引号去掉
2、日期时间修改
3、字段对应参数由一对多改成一对一

示例一
#一对多改成一对一,去引号
mysql:
insert into 'fq_role_permission'('ID','ROLE_ID','PERMISSION_ID') values(1316,13,58),(1317,13,59);

oracle:
insert into fq_role_permission(ID,ROLE_ID,PERMISSION_ID) values(1316,13,58);
insert into fq_role_permission(ID,ROLE_ID,PERMISSION_ID) values(1317,13,59);

示例二:
#时间格式修改
mysql:
insert into 'fq_user'('USER_ID','LOGIN_NAME','PASSWORD','REG_DATE')
values (1,'admin','159ae5f48f14e89f3f9f54dc995f1f276d472b54','25-05-2017 10:32:02');

oracle:
insert into fq_user(USER_ID,LOGIN_NAME,PASSWORD,REG_DATE,EMAIL)
values (1,'admin','159ae5f48f14e89f3f9f54dc995f1f276d472b54',to_date('25-05-2017 10:32:02', 'dd-mm-yyyy hh24:mi:ss'));

mysql脚本手动修改成oracle脚本的更多相关文章

  1. MySQL LIMIT 如何改写成Oracle limit

    mysql代码 SELECT * FROM tablename LIMIT 100,15 首先,Oracle是不支持limit的.个人感觉分页方面mysql比Oracle要好些.处理代码如下: sel ...

  2. Mysql表结构转成Oracle

    Navicat数据库连接工具

  3. MyBatis项目实战 快速将MySQL转换成Oracle语句

    一.前言 因项目需求,小编要将项目从mysql迁移到oracle中 ~ 之前已经完成 数据迁移 (https://zhengqing.blog.csdn.net/article/details/103 ...

  4. sql server t-sql脚本转成oracle plsql

    将一份SQL SERVER数据库生成的T-SQL脚本,转成ORACLE的PL/SQL,其复杂繁琐程度,远远出乎我的意料. 这份SQL SERVER脚本,里面有表,有视图,还有存储过程,以及一些自定义函 ...

  5. Loadrunner中web脚本转成JavaVuser脚本

    先用web方式录制好脚本,进行参数化,关联验证等操作,之后执行以下步骤: 1)将要转换的web脚本复制出来并保存到web.txt中2)参数界定符部分需要由{}手动修改成<>,包括参数化的和 ...

  6. mysql数据库脚本改为oracle脚本

    前段时间公司项目数据库需要从mysql转为oracle,所以需要修改下原有的mysql脚本. 有两种方式:第一种,使用工具进行两种数据库的转换.第二种,手动修改数据库脚本. 第二种方法很笨,但能学习下 ...

  7. 大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题。

    大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题.打猴子补丁. 先把脚本中的所有logger的handlers全部 ...

  8. Mysql - 增量脚本中修改字段属性

    在增量部署系统的时候, 经常需要提供增量修改的脚本, 如果是修改存储过程或者自定义函数, 那还是很好改的, 不用担心表功能收到影响. 如果是改字段呢? 首先不知道字段是不是已经在系统里面, 没有的话, ...

  9. oracle 脚本创建数据库的相关文章,教程,源码

    学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ...

随机推荐

  1. mongodb连接配置实践

    之前百度,google了很多,发现并没有介绍mongodb生产环境如何配置的文章, 当时想参考下都不行, 所以写篇文章,大家可以一块讨论下. 1. MongoClientOptions中的连接池配置: ...

  2. Centos使用LVS+keepalive 搭建集群原理详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...

  3. 【翻译】Apache Shiro10分钟教程

    本文为翻译文,原文地址:http://shiro.apache.org/10-minute-tutorial.html 介绍 欢迎来到Apache Shiro的10分钟教程! 通过这个教程,你会明白一 ...

  4. MapReduce 计数器简介

    转自:http://my.oschina.net/leejun2005/blog/276891?utm_source=tuicool&utm_medium=referral 1.计数器 简介 ...

  5. tracert traceroute

    二者都用于探测数据包从源到目的经过路由的IP,但两者探测的方法却有差别.不同点:一.应用环境不同tracert是应用在windows下.traceroute则是应用在linux/BSD/router/ ...

  6. SAP从入门到精通 知识体系

    初步认识 SAP标准课程培训 详细信息点击: SAP从入门到精通课程 标准培训主要是基于SAP标准的课程架构,定期在SAP的培训中心面向广大SAP客户开设公开课.培训过程中会应用SAP标准的教材内容, ...

  7. 【AI】PaddlePaddle-Docker运行

    1.参考官方安装Docker环境,使用一键安装包安装 https://www.jianshu.com/p/b2766173d754 http://www.paddlepaddle.org/docume ...

  8. MyCat(一) - 初体验

    前提: 1.安装JDK 2.安装MySQL 3.搭建了MySQL主从 1.下载MyCat,官网:http://www.mycat.io/ wget http://dl.mycat.io/1.6-REL ...

  9. iOS - 提示用户升级版本并跳转到AppStore

    一.问题:自己做提示用户升级? 由于苹果做了自动升级,所有只要在应用程序中出现从AppStore检查版本更新,或者出现任何有关升级的提醒都会被拒,但是如果必须添加升级提示的话,可以配合后台通过添加AP ...

  10. A real example of vioplot in R (sample data and code attached)

    Basic information Package name: vioplot Package homepage: https://cran.r-project.org/web/packages/vi ...