怎么将oracle的sql文件转换成mysql的sql文件

如题所述

您好,首先需要这两个软件:PowerDesigner软件,oracle数据库。 1、将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件。 2、在PowerDesinger里找到 File -->> Reverse Engineer --->> Database
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-23
转换一般会遇到的问题:
1 、 大小写敏感的区别( 如果服务器 OS 是linux) 。
在oracle 中一般情况下不区分大小写。有时候我们在使用oracle 不注意大小写的问题,表名和字段名不加双引号是不区分大小写的,像这样:insert into tableName 和 insert into TABLENAME 效果是一样的,用工具导出创建/ 数据初始化脚本,得到的结果一般表名和字段名转化成了大写。
但在MySQL 中,所使用操作系统 的大小写敏感性决定了数据库名和表名的大小写敏感性。数据库对应数据目录中的目录,数据库中的每个表至少对应数据库目录中的一个文件( 也可能是多个,取决于存储引擎) 。因此,使用数据库或表实际上是操纵这些文件( 夹) ,所以使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。在以linux 为内核的操作系统中是大小写敏感的。
解决的办法是把mysql 的数据库名和oracle 的大小写保持一致,表名与应用程序中sql 字符串中的表名保持一致,如果应用程序中字段名用了双引号,那请把sql 中的字段名大小写与双引号里的字符保持一致。如果你的应用程序所引用的表名、字段没有统一大小写,那麻烦就大了。
2 、保留字的区别。
像sql 语言的函数名( 如:inteval ,show) 等是保留字。Oracle 中保留字是可以作为表名和字段名,并且不影响使用,但mysql 中保留字是不能作为表名和字段名,如果使用会报语法错误。
解决办法,把sql 语句中的保留字用‘`’ 符号引起来,这个符号位于键盘 的tab 键上面; 如果是字段名还有另外一种方法tablename. 字段名。像这样:insert into tablename (id, `interval`) value(….. 或insert into tablename (id, tablename.inteval) value(….. 。
3 、数据类型的区别。
在mysql 中没有像oracle 中的varchar2 、number ,mysql 有与之对应的varchar 、numeric ,当然在oracle中没有mysql 的time 类型。
解决办法是替换。
4 、自动增长类型的区别。
Oracle 有sequence ,mysql 中没有,但有auto_increment 属性。
解决办法是把Oracle 中sequence 转换成使用auto_increment 属性,某些情况可能还有一种办法可以解决问题,新建一个独立的表用来专门记录自动增长型的数据。
5 、索引长度限制的区别。
从MySQL 4.1.2 开始,MyISAM 和InnoDB 表索引长度支持1000 字节,也就是说索引字段的长度不能超过1000 字节,如果超过会报错:ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes 。如果是UTF-8 编码,相当于333 个字符的长度( 因为UTF8 一个字符占3 个字节) 。Oracle 的索引长度限制比mysql 要宽松得多。解决办法要么改索引的定义,要么改字段的定义长度。
6、SQL中函数名称不一致
可以在网上找oracle 常用函数 与mysql 的对照表,然后逐一修改。网上也可以找到简单的转换工具,效果自己判断。本回答被提问者采纳

怎么将oracle的sql文件转换成mysql的sql文件
将oracle的sql文件转换成mysql的sql文件:1、将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件。2、在PowerDesinger里找到 File -->> Reverse Engineer --->> Database;3、在弹出的“New Physcal Data Model”窗口界面,选择“share the DBMS definition”然后点击确定。注...

怎么将oracle的sql文件转换成mysql的sql文件
可以在网上找oracle 常用函数 与mysql 的对照表,然后逐一修改。网上也可以找到简单的转换工具,效果自己判断。

Oracle转mysql
点击开始,进行表转换 对于其他表,在转换成mysql后,确认一下表中数据id的最大值,将最大值+1作为新表序列的current_value。然后自定义序列名,最好与原序列名称保持一致,执行步骤4.4。将原sql中的 SELECT ZFTJ_SEQ.nextval AS id FROM DUAL 替换为新序列的 nextval SELECT nextval('ZFTJ_HALF_...

怎么把orcal 转 mysql
1,由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",2,另外,ACCESS2000转换成SQL2000后,原来属性为"是\/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;3,另外,...

Oracle 数据库导出的sql文件怎么转换成mysql数据库的sql文件
Collector进程:接收源端传输过来的数据变化,并写入本地Trail文件中 Replicat进程:读取Trail文件中记录的数据变化,创建对应的DML语句并在目标端回放 二、迁移方案 (一)环境信息 OGG版本 OGG 12.2.0.2.2 For Oracle OGG 12.2.0.2.2 For MySQL 数据库版本 Oracle 11.2.0.4 MySQL 5.7.21 OGG_HOME \/home\/oracle\/...

如何快速将sql文件导入mysql数据库中
使用命令“mysql -u root -p database d:\/demo.sql”导入文件。这里的“database”应替换为你要导入的数据库名称,“demo.sql”为你的SQL文件名。如果MySQL数据库的密码为空,则无需输入密码,直接回车。执行此命令后,屏幕会提示输入密码。如果密码为空,则无需输入,直接回车。如果一切正常,屏幕...

如何将oracle数据库转换成mysql数据库,现在公司有急用,方法可用的话再...
笔者使用“SQLYog Migration Toolkit”工具按提示步骤移植后,表的主要结构和数据将成功移植,主要包括表的字段类型(经过映射转换,比如number会转换为double,date转换为timestamp等,请小心处理日期字段的默认值等),表的主键,表的索引(Oracle的位图索引会被转成BTree索引,另外表和字段的注释会丢失)等信息。需要特别注意的...

怎样把一个sql的文件导入mysql数据库中?
1、登录MySQL数据库 使用MySQL命令行或客户端工具登录数据库。需使用具有导入权限的用户名。在命令行输入用户名后,系统提示输入密码。2、创建目标数据库 如需导入新数据库,先创建目标数据库。使用SQL语句创建:dbname。若已有目标数据库,跳过此步。3、选择目标数据库 使用SQL语句选择目标数据库:dbname。

sql文件怎么用 导入数据库文件
首先,如果你使用的是命令行,确保MySQL已安装并在电脑上运行。启动MySQL后,找到你的SQL文件,例如D盘的"***.sql"。在命令行中,先切换到文件所在的目录,然后使用"mysql -u用户名 -p密码 -e 'USE 数据库名; SOURCE d:\/***.sql;'"的命令,按提示输入密码,这将导入数据库。成功导入的标志是...

如何将sql文件导入mysql
1. 打开MySQL服务,找到你的SQL脚本文件(如test.sql),并将其放在容易访问的位置,如D盘根目录。2. 使用命令“mysql -u用户名 -p密码”登录,然后输入“USE 数据库名;”切换到目标数据库。3. 接着输入“SOURCE d:\/test.sql;”导入脚本,成功后会看到导入完成的提示。另一种方式是通过Navicat ...

相似回答