开发了一段时间的一个系统一直在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的步骤有显著区别。在DB2中,可以通过DB2控制中心创建数据库实例,包括选择“创建数据库”、“标准”选项,定义数据库名称,设置缓冲池和表空间页大小,选择代码集,最后确认...
标题中的“DB2和Oracle对比”意味着我们将探讨这两款企业级...Oracle适合需要高性能和复杂分析的大型企业,而DB2在大数据处理和云计算环境中更具竞争力。通过深入理解两款产品的特性,企业可以做出最适合自己的决策。
以下是对Oracle与DB2之间主要区别的详细分析: 1. **许可证模式**: - Oracle提供多种许可证选项,包括单用户许可证、CPU许可证、基于处理器的复杂度和用户数的许可证等。这种灵活性使得Oracle能够适应不同规模的...
### 建立db2与oracle联合数据库图文教程详解 #### 概述 本文档旨在指导初学者如何通过db2II工具实现db2与oracle之间的联合数据库配置。此过程涉及跨平台的数据访问与管理,有助于扩展数据库系统的功能性和灵活性。...
### 二、DB2与Oracle实例的特性分析 DB2实例允许在一个环境中支持多个数据库,增强了资源的灵活性和利用率。而Oracle实例则专注于单一数据库,强调了数据的一致性和安全性。 ### 三、内存管理与后台进程 #### DB2...
通过理论讲解与实际操作相结合的方式,不仅能够帮助学员快速掌握 DB2 的基础知识,还能让他们深入了解如何有效地将现有 Oracle 数据库迁移至 DB2。此外,该课程还特别强调了 DB2 在数据并发控制和 XML 数据处理方面...
### DB2与Oracle数据库技术的对比研究 #### 1. 引言 当前,在全球数据库管理系统(DBMS)市场中,存在着三个主要竞争者:Oracle、IBM的DB2以及Microsoft SQL Server。其中,Oracle和DB2因其能够在多种操作系统平台...
### ORACLE与DB2的区别和转换 #### 一、简介 在数据库领域,Oracle和DB2都是非常流行的数据库管理系统。它们各自具有独特的特性和优势,并且广泛应用于不同的业务场景中。对于那些需要在Oracle和DB2之间进行数据...
本文将深入探讨Oracle与DB2的区别,并提供一些常见问题的解决策略。 一、Oracle数据库 Oracle,由甲骨文公司开发,是全球最大的企业级数据库解决方案之一。它的优势在于其强大的性能、可扩展性和安全性。Oracle...
标题与描述均提到了“dB2对比oracle”,这显然是在探讨IBM的DB2数据库系统与Oracle数据库系统的比较。虽然给出的部分内容较为杂乱且非直接的技术性对比,但我们可以从中提炼出几个关键点进行深入分析。 ### DB2与...
### DB2 与 Oracle 数据库的不同点分析 随着信息技术的发展,数据库管理系统(DBMS)作为企业信息化建设的基础之一,其重要性日益凸显。其中,IBM 的 DB2 和 Oracle 是市场上两大主流的关系型数据库管理系统,它们...
本文旨在对比Oracle和DB2/400数据库管理系统中的数据类型,并重点分析日期和时间类型的差异。由于Oracle和DB2/400在数据类型的定义和实现上存在差异,因此在进行数据库迁移或跨平台开发时,了解这些差异至关重要。 ...
#### 一、Oracle SQL PL与DB2 inline SQL PL对比 本章节主要介绍Oracle SQL PL与DB2 inline SQL PL之间的对比,包括但不限于存储过程、触发器、用户定义函数(UDF)、条件语句及流程控制等。 ##### 1.1 创建存储...
以下是对两者主要区别的详细分析: 1. 取前 N 条记录: - Oracle 使用 `SELECT * FROM TableName WHERE ROWNUM ;` - DB2 使用 `SELECT * FROM TableName FETCH FIRST N ROWS ONLY;` 2. 获取系统日期: - Oracle...
本文将对比分析DB2和Oracle的并发控制,特别是锁的实现和差异。 首先,数据库事务的ACID特性是并发控制的基础,其中A(原子性)、C(一致性)、I(隔离性)和D(持久性)保证了事务处理的可靠性和数据的一致状态。...
- **集成程度高**:Oracle 11g与其他Oracle产品有着良好的集成性,可以构建出完整的企业级解决方案。 - **开发效率高**:提供了丰富的开发工具和API,提高了开发人员的工作效率。 - **Oracle存在的不足**:虽然...
【DB2与Oracle数据仓库技术对比】 在当前的数据库市场中,IBM的DB2和Oracle数据库是最具影响力的两款产品,特别是在数据仓库技术方面。这两款数据库系统都具有强大的功能和性能,但各自的特点和优势有所不同。 1. ...
本文将对 Oracle 与 DB2 的对应关系进行总结和分析,涵盖日期型数据转化、字符型转日期型、常用函数、JSP 实现分页、序列等多个方面。 一、日期型数据转化 在 Oracle 中,日期型数据只有一个,即 Date 型,占用...
本合集涵盖了DB2与Oracle的函数大全,旨在帮助数据库管理员和开发人员更好地理解和运用这些功能。 DB2函数: 1. **转换函数**:如`CHAR()`, `VARCHAR()`, `DECIMAL()`, 用于数据类型的转换。 2. **数学函数**:...