0


将mysql的脚本转化为oracle的脚本攻略

一、将MySQL脚本转换为Oracle脚本需要考虑到两个关键因素:

语法差异:MySQL和Oracle SQL之间存在一些语法差异,例如日期函数、字符串处理、聚合函数等。在转换脚本时需要将这些差异进行适当的调整。

数据类型不一致:MySQL和Oracle使用不同的数据类型,因此需要确保在转换脚本时使用了正确的数据类型。

二、将MySQL脚本转换为Oracle脚本的指南:

将MySQL特定的函数或关键字转换为Oracle语法。例如:
DATE_FORMAT(date, format) 在Oracle中可以使用TO_CHAR(date, format)。
LIMIT offset, count 在Oracle中可以使用ROWNUM。
IFNULL(expr1, expr2) 在Oracle中可以使用NVL(expr1, expr2)。
将MySQL数据类型转换为Oracle数据类型。例如:
TINYINT 在Oracle中可以使用NUMBER(3)。
MEDIUMTEXT 在Oracle中可以使用CLOB。
DATETIME 在Oracle中可以使用DATE或TIMESTAMP。
修改MySQL语法以适应Oracle语法。例如:
MySQL使用反引号(`)来引用标识符,在Oracle中使用双引号(")或者不使用引号。
MySQL使用BACKSLASH(反斜杠)作为转义字符,在Oracle中使用单引号(')代替。
总体来讲,将MySQL脚本转换为Oracle脚本需要深入了解两种数据库的语法、函数和数据类型。建议先学习Oracle SQL语法,然后逐行检查MySQL脚本并将其转换为Oracle语法。

三、细节点

  1. (所有的not null必须放default后面),否则会报miss right parentheses
  2. 所有的`符号替换为" (可以放到idea使用快捷键操作)
  3. 全部使用大写 (可以放到idea使用快捷键操作)
  4. TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP 换为:DATE DEFAULT SYSDATE NOT NULL
  5. 自增AUTO_INCREMENT换成序列
CREATE SEQUENCE SEQ_MSW_ID MINVALUE 1 MAXVALUE 99999999999999999999 INCREMENT BY1CYCLE CACHE 50;
  1. INDEX,TYPE等关键字字段需要使用双引号引起来
  2. 删除 COMMENT 额外添加
COMMENTONCOLUMN"表名"."字段"IS'字段描述';
  1. 特殊字符拼接
  2. ‘2020-01-01 00:00:00’ 字符串的时间需要转换为to_date TO_DATE(‘2022-04-12 03:32:01’, ‘SYYYY-MM-DD HH24:MI:SS’)
-- 处理之前的mysql的sqlINSERTINTO`organization`(`id`,`name`,`description`,`avatar`,`user_id`,`project_num`,`member_num`,`role_num`,`allow_create_project`,`member_permission`,`create_time`,`create_by`,`update_time`,`update_by`)VALUES(1,'guest\'s Organization',NULL,NULL,1,0,1,0,1,1,'2020-01-01 00:00:00',1,NULL,NULL);-- 处理后的oracle的sqlINSERTINTO"ORGANIZATION"("ID","NAME","DESCRIPTION","AVATAR","USER_ID","PROJECT_NUM","MEMBER_NUM","ROLE_NUM","ALLOW_CREATE_PROJECT","MEMBER_PERMISSION","CREATE_TIME","CREATE_BY","UPDATE_TIME","UPDATE_BY")VALUES(1,'GUEST'||''''||'S'||' ORGANIZATION',NULL,NULL,1,0,1,0,1,1, TO_DATE('2023-06-01 00:00:00','SYYYY-MM-DD HH24:MI:SS'),1,NULL,NULL);
  1. dml中的value字符串不能使用双引号
  2. 单引号使用四个单引号转义
SELECT'GUEST'||''''||'S'||' ORGANIZATION'from dual

在这里插入图片描述
12. 批量替换数据类型时,注意字段中包含指定的字符,防止误替换
举例:int 批量替换为number时,表中的字段可能也含有int字符

标签: oracle mysql 数据库

本文转载自: https://blog.csdn.net/qq_44734154/article/details/131027603
版权归原作者 七羽319 所有, 如有侵权,请联系我们删除。

“将mysql的脚本转化为oracle的脚本攻略”的评论:

还没有评论