今天有一个需求,立了一个新项目,新项目初步定了使用了现有的框架,但数据库要求由原来的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. [elk]bin/elasticsearch-sql-cli使用

    在探sql groupby语句 这个长久不用竟然忘记 part name age dep1 ara 22 dep1 arb 22 dep1 arc 22 dep2 ema 10 dep2 emc 11 ...

  2. 100BASE-TX、100Base-FX等含义

    100BASE-TX:双绞线,使用两对非屏蔽双绞线或两对1类屏蔽双绞线连接,传输距离100米 100Base-FX,是在光纤上实现的100 Mbps以太网标准,其中F指示光纤,IEEE标准为802.3 ...

  3. Machine Learning第十一周笔记:photo OCR

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完毕了Cousera上Machine Learning的最后一周课程.这周介绍了 ...

  4. Deseq2 的可视化策略汇总

    1) MA图   对于MA图而言, 横坐标为该基因在所有样本中的均值,basemean = (basemean_A + basemean_B ) / 2, 纵坐标为 log2Fold change 其 ...

  5. 【IEEE会议论文】格式规范问题

    - Text area: The height of the text should not be much smaller than 23.5 cm  and the width should no ...

  6. springBoot整合ftp上传图片功能

    知识点: springBoot后端项目,接收前端框架传到的图片,把图片上传到ftp图片服务器上 注意:在上传的过程中可能回出现,可以创建文件夹,但是图片上传不了的问题: 尝试了网上的很多方法,最后将f ...

  7. [Golang] 编译程序时打上git提交信息标记

    1.加入代码 //version.go package version import ( "flag" "fmt" "os" ) var ( ...

  8. Android 7.0 适配

    extends:http://www.jianshu.com/p/56b9fb319310http://blog.csdn.net/chay_chan/article/details/57083383

  9. mac homebrew

    brew 全称Homebrew  是Mac OSX上的软件包管理工具 Homebrew 安装和卸载工具 只用一行命令就能完成 官方地址:    http://brew.sh/index.html   ...

  10. 写jquery插件(转载)

    如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ...