欢迎投稿

今日深度:

DB2和Oracle的一些异同点

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

www.htsjk.Com true http://www.htsjk.com/shujukujc/19342.html NewsArticle DB2和Oracle的一些异同点 1.Table space for indexes 的不同 Oralce: CreateTABLE T1 .............IN DATA_TA CreateIndex ........ ONT1 ...... ININDX_TS DB2: Create TABLE T1 ........ IN DATA_TS INDEX IN INDX_TS CreateINDEX .....ON T1 2....
评论暂时关闭