开发了一段时间的一个系统一直在db2上使用,终于开发的差不多,测试没什么大问题了。突然有一个客户现场要求用oracle数据库,刚开始觉得应该没什么问题,开发的时候虽然没在oracle数据库测试过,但是无非也就是一些SQL的问题,结果用oracle数据库一发布就傻眼了,我嘞个去竟然没有一个功能能正常运行,所有的功能进去都是空白页面,当然报错的都是SQL,但是这也太超乎我的想象了啊!所以还是记录下遇到的问题吧,以后写SQL的时候还是尽量通用,省的以后移植的时候费那么大劲了。
1、取得系统当前日期。db2为current date 但是这个在oracle中是不适用的,oracle为sysdate。我查找资料都没有说明db2可不可以用sysdate,但是我的db2 9.7的版本的确可以用sysdate这个函数的。所以就ok了,所有的取得系统当前日期函数都改为sysdate,适用oracle和db2。
2、日期类型字段。对于数据类型为date的字段,在db2中操作的时候不用做任何处理,可以当varchar类型的字段一样处理。但是oracle就不能这么干了,在查询的时候必须用T0_CHAR(CLOMUN,'yyyy-mm-dd'),在update或者insert的时候必须用TO_DATE(CLOMUN,'yyyy-mm-dd')转为DATE类型。在db2中也可以用to_char和to_date函数。
3、db2中的DECIMAL和oracle中的NUMBER类型。db2中的DECIMAL对应oracle中的NUMBER类型,来定义数字类型和保留几位有效数字。例如:oracle中定义number(16,2)(四舍五入) db2中定义decimal(16,2)(会直接截取)。对于DECIMAL类型是不能把空值放进去的,如果为空则默认插入0,而且如果为10.00查询后是可以直接显示的,但是number类型就只显示10所以如果要显示10.00就需要对其进行格式化。另外number类型中是可以放空值的。
4、SQL的区别。db2和oracle中有一些SQL的区别,这个都是必然的,但是大部分的简单SQL都还是一样的,这里列举一些吧:
查询序列
oracle:
select T18_ONLINE_TASKFACT_TASKKEY.currval from dual(当前值)
select T18_ONLINE_TASKFACT_TASKKEY.nextval from dual(下一个值)
db2
select PREVVAL FOR T18_ONLINE_TASKFACT_TASKKEY from sysibm.sysdummy1 (当前值)
select NEXTVAL FOR T18_ONLINE_TASKFACT_TASKKEY from sysibm.sysdummy1(下一个值)
查询前10行数据
db2 : select * from test fetch first 10 rows only
oracle: select * from test where rownum<=10
分享到:
相关推荐
分析db2 和 oracle数据库在企业应用的 优缺点 从而为 各种大型企业的开发人员 更加深入了解 这两大数据提供帮助
由于客户选型举棋不定,本人通过收集Sybase ASE 15、db2 V9、Oracle 11g三大品牌数据库开发应用及日常维护的相关优劣进行客观的分析,供读者参考。
SAP HANA竞争分析(与ORACLE/DB2/HADOOP等)
ORACLE转DB2对照全解,学习数据库转换的好帮手
第一部分从开发者遇到的问题进行分析,提出在oracle兼容模式下开发数据应用的新思路,并讲述了从oracle迁移到db2的方法、工具及案例。第二部分讲述了db2开发工具方面的知识,以及如何更有效地开发存储过程、用户...
帮助 你更快 更好的 去分析 去解决 oracle转db2所遇到的困难
一个利用正则表达式分析出DB2、Greenplum、MySQL、Oracle、PostgreSQL和Te-HSP
本文以Oracle和DB2为例,针对数据性能调整和优化问题,结合优化器的工作原理和工作机制,以及利用优化其提高查询性能的方法,性能分析和调优的命令和工具的选取等方面,比较两个数据库的异同。
本文从一些方面比较了SQL Server 与Oracle、 SYBASE、DB2、INFORMIX 这些数据库,为您选择数据库提供一些参考。
Oracle XML DB和DB2 pure XML在XML文档存储查询性能方面的比较分析.pdf
Oracle XML DB和DB2 pure XML在基于XML电子病历实现技术方面的比较分析.pdf
26. 比较SQL Server与Oracle、DB2 27. 多个数据库时,如何设置默认数据库 28. 各种数据类型的比较 29. 漫谈oracle中的空值 30. 没有备份、只有归档日志,如何恢复数据文件 31. 哪些初始化参数最影响Oracle系统...
SQL Monitor for Oracle,MySQL and DB2 是款免费的数据库跟踪工具,专门用来分析CPU使用率高的问题。 软件功能: 1. 监控SQL Server的进程和Job,查看当前执行的SQL/命令,并终止之。 2. 对象浏览器,跟 SQL Server...
第7周 DB2性能优化:锁机制深入解析,包括并发、隔离级、锁概念、DB2与Oracle锁机制对比等。 第8周 DB2性能优化:索引调优,包括索引的工作机制、索引设计与性能、索引设计向导等。 第9周 DB2性能优化:SQL语句调优...
第一本专门为程序员编写的数据库图书 《程序员的SQL金典》 1.将子查询、表连接、数据库语法差异等用通俗...解决方案,同时学会MSSQLServer、MYSQL、Oracle、DB2 数据库不再是梦 4.国内第一本讲解开窗函数实际应用的图书
本文详细地介绍了“万能数据库查询分析器”,中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》6.03 来方便地创建DB2函数。创建DB2存贮过程与此相同,大家可以参照以下步骤。另外,本示例还适用于SQL语句要...
问: 客户要从 Oracle 移植到 DB2 UDB,而待移植项目之一就是序列 ID。但是,他们却发现 DB2 UDBV7 中的序列 ID 是在行插入时内部生成的,于是想要知道如何获得所插入行的 ID,以在其应用程序中显示。如果他们需要...
数据库管理系统(DBMS)的自治特性是实现其管理便捷的关键,关系到维护的成本,并且向终端用户屏蔽了底层的复杂性。...在Microsoft SQLServer与DB2上也进行了相同研究,并对Oracle与SQL Server自治组件进行了比较。
从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展中的最佳选择。 其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的...
经历4年的研究、开发、测试,个人创作了“万能数据库查询分析器”,中文... 值得说明的是,仅测试时间,就长达三个多月,涵盖了ORACLE、SYBASE、DB2、INFORMIX、MS SQL SERVER、MS ACCESS、Paradox和EXCEL上的测试。