公司开发的一个项目因为号称是跨平台,所以在交付的时候客户要求一个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.
分享到:
相关推荐
mysql 数据移植到oracle
近些天在做一个同步功能,需要将mysql数据库中的某两张表的数据同步到oracle,考虑到表的字段较多,一个个写肯定不行,借助工具Convert Mysql to Oracle来转换!mysql中表与数据移植到oracle的纯绿色软件
提供mysql移植到oracle的方案 实践过程描述
一、sql-developer工具准备 二、工具使用说明 三、创建MySQL、Oracle数据库连接信息 四、Mysql数据库移植到Oracle数据库 五、通过PLsql登录
先有个免费工具,但每个表只能移植5条记录(clob blob等大数据类型都能处理)。若要代码自动批量移植,请MSN联系:dy-fairy@hotmail.com
Oracle到MySQL转换器是将数据库从Oracle迁移到MySQL服务器的工具。由于直接连接到源数据库和目标数据库,该程序保证了转换过程的高性能。它不使用ODBC或任何其他中间件组件。不需要安装Oracle组件。安装包包括产品到...
项目做好了,更高的要求被提出来,比如,要多数据库支持,怎么办?... 作为一个开源数据库,MySQL用无数案例证明了她的可用性,因此让我们把重点放在如何将Oracle移植到MySQL上。已经有很多的文章和专题介绍了Ora
好用的工具可將MySQL DB完整移植到Oracle DB
oracle_mysql系统移植方案归类.pdf
2.2.1 连接本机mysql数据库 2.2.2 连接生产oracle数据库 2.3 执行迁移 2.3.1 关联移植资料档案库 2.3.2 捕获方案 2.3.3 设置数据映射 2.3.4 转换为oracle模型 2.3.5 生成数据结构执行脚本 2.3.6 迁移数据结构 2.3.7 ...
经过我公司的测试和验证,并成功运用于我公司现有项目的移植工作上:mysql5.5移植到oracle11g;发布出来避免各位同僚总是找不到有效、可行的移植方法,也不希望那些总是被别人转载了上百遍,甚至上千遍的无用文章再...
oracle_mysql系统移植方案[参照].pdf
将数据从MySQL迁移到Oracle,大家需要注意什么?Oracle移植到mysql,又需要注意什么?如何有效解决移植过程的问题,为了数据库的兼容性我们又该注意些什么?感兴趣的小伙伴们可以参考一下
此软件能很好将oracle数据移植到sql server上.是一款非常不错的移植软件 希望大家借鉴
最新版mysql驱动,连接mysql的必备jar文件,此处作为mysql中表与数据移植的工具之一
您可以学会如何迁移数据库、移植SQL代码、使用Oracle和MySQL数据库以及配置高效率的查询。在这本内容广泛的书籍中,还包括了安全、监控和调试方面的技巧。 本书特色 ● 理解Oralce Database 11g和MySQL 5.6的架构 ...
您可以学会如何迁移数据库、移植SQL代码、使用Oracle和MySQL数据库以及配置高效率的查询。在这本内容广泛的书籍中,还包括了安全、监控和调试方面的技巧。 《Oracle Database 11g & MySQL 5.6开发手册》特色 理解...
服务约 50 万商务用户,经过多次的升级移植,目前公司已经全部将后台数据库从 MySQL 移植到 PostgreSQL ,而个人完成了其中一半的数据库移植工作,所以对数据库从 MySQL 移植到 PostgreSQL 积累了一些经验。...
利用《Oracle Database 11g & MySQL5.6开发手册》,您将能够...您可以学会如何迁移数据库、移植SQL代码、使用Oracle和MySQL数据库以及配置高效率的查询。在这本内容广泛的书籍中,还包括了安全、监控和调试方面的技巧。
利用《Oracle Database 11g & MySQL5.6开发手册》,您将能够...您可以学会如何迁移数据库、移植SQL代码、使用Oracle和MySQL数据库以及配置高效率的查询。在这本内容广泛的书籍中,还包括了安全、监控和调试方面的技巧。