DB2和Oracle的一些异同点


**1.Table space for indexes 的不同

** Oralce:

Create TABLE T1 .............IN DATA_TA

Create Index ........ ON T1 ...... IN INDX_TS

DB2:

Create TABLE T1 ........ IN DATA_TS INDEX IN INDX_TS

Create INDEX .....ON T1

2.RowID

Oracle:

Oracle 有RowID ,它是由数据库唯一产生的,在程序里可以获得

DB2:

DB2的相对应的这个值不能被程序获得

**3.一些转换

**

Oracle:

Oracle 支持一些转换,比如:

Create table t1(c1 int);

Select * from t1 where c1='1'

Select 'abc'||2 from t1

DB2:

DB2不支持一些转换,比如:

Create table t1(c1 int);

Select * from t1 where c1=CAST('1' AS INT)

Select 'abc'||CHAR(2) from t1

4.函数的值做为表中的缺省值

Oracle:

Oracle 支持把函数的值做为表中的缺省值,比如:

Create table t1(C1 Number DEFAULT FN() NOT NULL,

C2 DATE DEFAULT NOT NULL SYSDATE

)

DB2:

DB2不支持把函数的值做为表中的缺省值,比如:

Create table t1(C1 INT NOT NULL,

C2 TIMESTAMP DEFAULT CURRENT TIMESTAMP

)

这个是不允许的

**5.一些内建的函数

**

6.公用的同义词(Public Synonyms)

Oracle:

Oracle 支持公用的同义词

DB2:

DB2不支持公用的同义词

**7.Date/Time

**

**8.外连接

**

现在,Oracle 9i也支持这种ANSI join 语法

9.字符串和null的合并

Select 'abc'||c1 from T1

C1 is null

Result :

Oracle : abc

DB2: null

要想得到'abc',DB2中需要这样处理

Select 'abc'||coalesce(c1,'') from T1

Published At
Categories with 数据库类
comments powered by Disqus