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

这篇具有很好参考价值的文章主要介绍了将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 BY 1 CYCLE CACHE 50;
  1. INDEX,TYPE等关键字字段需要使用双引号引起来
  2. 删除 COMMENT 额外添加
COMMENT ON COLUMN "表名"."字段" 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的sql
INSERT INTO `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的sql
INSERT INTO "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

mysql脚本转oracle,oracle,mysql,数据库
12. 批量替换数据类型时,注意字段中包含指定的字符,防止误替换
举例:int 批量替换为number时,表中的字段可能也含有int字符文章来源地址https://www.toymoban.com/news/detail-630775.html

到了这里,关于将mysql的脚本转化为oracle的脚本攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库问题记录(粗略版)oracle、mysql等主流数据库通用

    1. ORA-00918:未明确定义列 该问题情况大致为:select 所取列名错误、重复等问题。 2. “select * from temp where 1=0; ”的含义 布尔值为FALSE,只返回表结构,不返回数据。 举一反三: select * from temp where 10 , 布尔值为TRUE,返回所有数据记录; select * from temp where 1=0, 暂不清楚是何

    2024年02月07日
    浏览(50)
  • 数据库去重(MYSQL和ORACLE)

    一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法 (1)、rowid方法 (2)、group by 方法 (3)、distinct方法 1、用rowid方法 根据Oracle带的rowid属性,可以进行判断是否存在重复语句; (1)、查出表1和表2中name相同的数据 Select * from table1 a Where rowid !=

    2024年02月09日
    浏览(49)
  • 查询数据库空间(mysql和oracle)

    1.查看数据库表空间文件: 2.查看所有表空间的总容量: 3.查看数据库表空间使用率 4.1.查看表空间总大小、使用率、剩余空间 4.2.查看表空间使用率(包含temp临时表空间) 5.查看具体表的占用空间大小 1.更改表空间的dbf数据文件分配空间大小 2. 为表空间新增一个数据文件(表空间

    2024年02月05日
    浏览(47)
  • DBeaver连接mysql、oracle数据库

    1) 下载DBeaver https://dbeaver.io/download/,并安装 2) 新建数据库连接    3)选择mysql驱动程序  4)填写连接设置内容 5)点击 “编辑驱动设置”,并填写相关信息  6)选择本地自己下载的驱动库jar包 (也可以点击下载驱动)  7)完成后,点击测试连接,可以查看是否连接成功

    2024年02月05日
    浏览(68)
  • MySQL数据库备份脚本

    PS:此脚本简单易懂,根据实际情况修改个别参数测试后即可使用,如有错误请指出! data:是个文件夹,用于存储备份下来的数据; db_and_tables:是个文件夹,用于存储脚本中需要的配置参数; old_db :存储不需要备份的数据库;脚本会通过此配置从而生成需要备份数据库的

    2024年02月03日
    浏览(45)
  • 从 Oracle 到 MySQL 数据库的迁移之旅

    目录 引言 一、前期准备工作 1.搭建新的MySQL数据库 2 .建立相应的数据表 2.1 数据库兼容性分析 2.1.1 字段类型兼容性分析 2.1.2 函数兼容性分析 2.1.3 是否使用存储过程?存储过程的个数?复杂度? 2.1.4 是否使用触发器?个数?使用的场景? 2.2 建表过程中其他需要注意的事项

    2024年04月11日
    浏览(54)
  • Mysql和Oracle数据库死锁查看以及解决

    一、Mysql数据库死锁排查 SQL : SQL: SQL: 示例: 备注:通过查看事务的trx_started(开始时间)来判断该事务的阻塞时间。 SQL  : 备注:线程ID指的是 1.1.3步骤中查询出来的 trx_mysql_thread_id。 SQL : 示例 : 字段解析 : SQL : 示例: SQL : 备注:多个session用逗号隔开。 View Code   造

    2024年01月20日
    浏览(46)
  • shell脚本-MySQL数据库备份

    确保mysql服务启动 可以通过mysqldump命令来备份数据库 1.mysqldump 命令语法: 使用 mysqldump 命令备份一个数据库的语法格式如下: 使用 mysqldump 命令备份一个数据库中表的语法格式如下: 2.参数: 实例: 先确保数据库服务启动的情况下,创建shell脚本

    2024年02月16日
    浏览(40)
  • 数据库加密AES 适用 Mysql Oracle 以及java

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 备忘录:加密key为:vU4C!~0_HQtlU_p@ 可采用任意长度为16位的字符串 数据库数据需要对敏感数据进行加密,比如手机号,身份证号以及银行卡号等进行加密。需要一套通用的加密方法可以在java项目以及or

    2024年02月15日
    浏览(50)
  • 查询Oracle和MySQL数据库中当前所有连接信息

    查询Oracle当前所有连接信息: 查询MySQL当前所有连接信息: 在这两个查询中,我为每个字段添加了中文别名,以提高查询结果的可读性

    2024年02月12日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包