topsjavaID:topsjava
10133次访问,排名10626好友0人,关注者0
topsjava的文章
原创 11 篇
翻译 0 篇
转载 30 篇
评论 3 篇
最近评论
china dragonfly:学习了,谢谢哦
wnj:支持原创!
efan101:我是初学者,非常有用,谢谢了!
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 oracle 和db2 的一些异同点收藏

    新一篇: DB2 命令行处理器(CLP)中的常用命令 | 旧一篇: 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,一些内建的函数

    Oracle

    DB2

    NVL

    COALESCE

    INSTR

    LOCATE

    DECODE

    CASE

    LENGTH

    LENGTH

    TO_CAHR()

    CHAR(),INTEGER(),TO_CHAR()

    TO_DATE()

    CHAR(date,FN)

    TO_DATE()

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

         Oracle:

    Oracle 支持公用的同义词           

       DB2:

    DB2不支持公用的同义词

    7Date/Time

    Oracle

    DB2

    SYSDATE

    CURRENT DATE

    CURRENT TIMESTAMP

    DT1+2

    Add_months(DT1,5)

    DT1+2days

    DT2+5months

    DT1+3years

    DT1-DT2

    TIMESTAMODIFF(k,Char(TS1-TS2)

    To_date(DT1,’MM/DD/YYYY’)

    Char(DT1,USA)

    Char(TM1,ISO)

    8,外连接

    Oracle

    DB2

    Select A.lastname,A_id,B.name From emp A,Customer B

    where A.id(+)=B.sales_rep_id;

    Select A.lastname,A_id,B.name From emp A, RIGHT OUTER JOIN Customer B

    where A.id=B.sales_rep_id;

    Select A.lastname,A_id,B.name From emp A,Customer B

    where A.id=B.sales_rep_id(+);

    Select A.lastname,A_id,B.name From emp A, LEFT OUTER JOIN  Customer B

    where A.id=B.sales_rep_id;

    Select A.lastname,A_id,B.name From emp A,Customer B

    where A.id(+)=B.sales_rep_id(+);

    Select A.lastname,A_id,B.name From emp A, Full OUTER JOIN  Customer B

    where A.id=B.sales_rep_id;

       现在, 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

     

    发表于 @ 2007年06月13日 11:49:00|评论(loading...)|编辑

    新一篇: DB2 命令行处理器(CLP)中的常用命令 | 旧一篇: DB2中实现Oracle的功能(三)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © topsjava