公司开发的一个项目因为号称是跨平台,所以在交付的时候客户要求一个oracle版本,
还好大部分的sql都是写在配置文件中,于是开始了修改之路。总结一下:
1.因为Oracle不支持AUTO_INCREMENT自动递增,所以需要为所有设置了自动递增的字段建立一个Sequence来实现自动递增
2.有一些字段在mysql中不是关键字,而在oracle中是关键字,比如SIZE,COMMENT,initial,user这种情况就涉及到需要修改程序代码,不过后来通过查询发现只要在加引号就可以了。
而且在创建视图时发现 select的时候也需要加上引号,比如 SELECT SP."COMMENT" "COMMENT",否则会报错。
3.MYSQL的text类型在oracle中需要使用long或clob来替换,但在替换的过程中发现 一个table只允许有一个long的字段,所以改为用clob来替换
4.实行存储过程的转换,mysql和oracle的存储过程的语法还是有较大的不同
a.参数的位置: mysql : IN par_year VARCHAR(20) |oracle : par_year IN VARCHAR(20)
b.定义变量: mysql : DECLARE NAME VARCHAR(20) |oracle : NAME VARCHAR(20)
c.临时表的创建: mysql: 可以直接在存储过程中写创建语句 |oracle: 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行,先定义一个变量 str:="'CREATE GLOBAL TEMPORARY TABLE SETT_DAILYTEST(.....)"
然后用 “execute immediate str;”来调用。
e.存储过程中调用存储过程: mysql: 直接 call 过程名() | oracle : 先定义字符串:str:=' call proc_getInvoiceID(:param1,:param2) ';再执行“ execute immediate str using in out ProjectID1,invoiceId” ; 记得一定要带有in out。 比如 “execute immediate str using out Rworkloads,out Rlessthan,out Runit ,out Rnum,in TaskID1,out Rresult ;”
f.存储过程名长度:oracle的长度不能大于30 ,这个问题必须修改该过程的名称,那就还需要去修改程序的代码。
g.group by : mysql中group by后可以用别名,oracle却不可以。而且oracle中group by后必须跟所有select中没有参与计算的字段
5.发现在sql中有这样一个条件,(a.ParentProject=NULL OR a.ParentProject="") ,在oracle中会提示错误,检查后发现是因为oracle中是没有''这个概念,null或者''都是用null来表示。
6.使用oracle时配置文件中的sql语句后面不能有分号,mysql则没有要求。
7.修改的过程中发现user这个关键字在查询的时候加了引号又会报错,应该不会是个别现象,以comment为例,测试了发现: 在建表时候如果字段名是Comment,那么在查询的时候加引号的话必须是"Comment",用"COMMENT"或者"comment"都会报错。
8.mysql在insert的时候可以用value或者values,oracle只能用values.
分享到:
相关推荐
在IT领域,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从MySQL迁移到Oracle。本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先...
在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,比如从MySQL迁移到Oracle。这个过程涉及到数据的完整性和一致性,以及业务连续性。以下是对这个主题的详细阐述: 一、为什么要进行MySQL到...
近些天在做一个同步功能,需要将mysql数据库中的某两张表的数据同步到oracle,考虑到表的字段较多,一个个写肯定不行,借助工具Convert Mysql to Oracle来转换!mysql中表与数据移植到oracle的纯绿色软件
在将Oracle数据库系统移植到MySQL的过程中,主要涉及以下几个关键知识点: 1. **数据类型差异**: Oracle和MySQL的数据类型存在显著差异,这直接影响到数据迁移的顺利进行。例如: - 数值类型:Oracle的`NUMBER`...
【Oracle到MySQL系统移植的关键知识点】 在软件开发中,数据库系统的迁移是一项复杂的工作,尤其是在从Oracle这样的高级数据库系统迁移到MySQL时。Oracle MySQL系统移植方案主要关注数据类型、SQL语法和特定功能的...
先有个免费工具,但每个表只能移植5条记录(clob blob等大数据类型都能处理)。若要代码自动批量移植,请MSN联系:dy-fairy@hotmail.com
在进行MySQL到Oracle的数据迁移之前,首先需要做好一系列的准备工作。 ##### 1.1 导入机 - **安装Oracle 11g数据库**:确保安装过程中正确配置数据库的各项参数,包括数据库实例名、管理端口等。 - **安装MySQL...
Oracle到MySQL转换器是将数据库从Oracle迁移到MySQL服务器的工具。由于直接连接到源数据库和目标数据库,该程序保证了转换过程的高性能。它不使用ODBC或任何其他中间件组件。不需要安装Oracle组件。安装包包括产品到...
本篇文章将详述从Oracle数据库到MySQL的迁移过程,主要关注关键步骤、工具选择以及可能遇到的问题。 首先,我们需要理解Oracle和MySQL之间的核心差异。Oracle是商业级的关系型数据库管理系统,以其强大的性能和高级...
项目做好了,更高的要求被提出来,比如,要多数据库支持,怎么办?... 作为一个开源数据库,MySQL用无数案例证明了她的可用性,因此让我们把重点放在如何将Oracle移植到MySQL上。已经有很多的文章和专题介绍了Ora
Oracle和MySQL是两种非常流行的数据库管理系统,而Java则通过特定的驱动程序(JDBC驱动)来连接和操作这些数据库。本文将详细介绍JAVA、ORACLE、MYSQL驱动程序的相关知识点。 首先,JAVA是Sun Microsystems(现已被...
它在全球各地,包括南极洲,都有用户,涵盖了从个人Web开发者到世界最大和增长最快的组织,用于驱动高流量网站、关键业务系统和预包装软件。MySQL是LAMP堆栈(Linux、Apache、MySQL、PHP/Perl/Python)应用的首选...
Oracle数据库和Microsoft SQL Server是两种广泛应用的关系型数据库管理系统(RDBMS)。在不同的业务场景下,用户可能需要将数据从Oracle迁移到SQL Server,以适应新的技术架构或满足特定的业务需求。在这种情况下,...
MySQL到Oracle的数据迁移是一项常见的数据库操作,尤其在企业系统升级或整合时。MySQL是一款开源、免费的关系型数据库管理系统,而Oracle则是一款功能强大的商业数据库系统,提供更高级别的性能、安全性和可扩展性。...
1. **MySQL移植工具包**:帮助用户迁移数据到MySQL。 2. **MySQL Administrator**:用于管理MySQL服务器配置、用户权限等。 3. **MySQL Query Browser**:用于构建和执行SQL查询。 #### 四、MySQL驱动程序 MySQL...
【Oracle到MySQL迁移】在IT行业中,数据库迁移是一项常见的任务,尤其当业务需求与现有数据库系统不匹配时。本文主要探讨了将Oracle数据库环境迁移到MySQL时遇到的问题及解决策略。 1. **大小写敏感性差异**:...
Oracle到MySQL转换的过程中,会遇到一系列的语法差异和功能不匹配的问题。以下是对这些关键问题的详细说明: 1. **字段类型的区别**: - `NUMBER(10,0)`在Oracle中相当于MySQL的`INT`,而`NUMBER(10,2)`则对应`...
1. 移植性:由于语法和功能上的差异,从Oracle移植到MySQL或反之可能会遇到挑战,尤其是在处理复杂的业务逻辑和存储过程时。 2. 兼容性:Oracle和MySQL对操作系统、硬件平台的兼容性都较好,但Oracle通常在大型企业...
在进行数据库迁移,无论是从MySQL迁移到Oracle,还是反向操作,都需要关注多个关键点以确保数据的完整性和系统的稳定性。以下是对迁移过程中需要注意的知识点的详细解释: 1. **自动增长的数据类型处理**: MySQL...