DB2與oracle的區別2____oracle

來源:互聯網
上載者:User
DB2與oracle的區別
 
1、DB2 訪問前10行資料與Oracle區別
 
DB2 :   
select * from test fetch first 10 rows only
Oracle :  
select * from test where rownum<=10
查詢語句
Db2:不提供隱形轉換
select * from employee where empno=1010;
oracle:提供隱形轉換
select * from employee where empno='1010';
 
2、DB2 Insert into 與Oracle區別
DB2 允許有類似這樣多行插入:
insert into staff values(1212,'cemy',20,'sales',3,90000,30000);
(1212,'cemy',20,'sales',3,90000,30000);
oracle:  www.2cto.com 
SQL>  insert into staff values(1212,'cemy',20,'sales',3,90000,30000),(1212,'cemy'
,20,'sales',3,90000,30000)
                                                   
3、DB2 Update 與Oracle Update
Db2
DB2 update staff set (salary,comm)=(80000,50000);
DB2 update staff set salary=80000,comm=50000;
Oracle:
SQL> update staff set salary=80000,comm=50000;
已更新 1 行。I
4、取得系統日期
Oracle:
Select sysdate from dual;
DB2:
Select current timestamp from sysibm.sysdummy1;
 
5、轉換日期時間到字元類型:
Oracle 
TO_CHAR(date_expression_r_r, 'YYYY-MM-DD') 
TO_CHAR(date_expression_r_r, 'HH24:MI:SS') 
DB2 
CHAR(date_expression_r_r,ISO) 
CHAR(time_expression_r_r,ISO)
 
6、轉換日期時間字串到日期時間類型:
Oracle 
TO_CHAR(date_expression_r_r, 'YYYY-MM-DD') 
TO_CHAR(date_expression_r_r, 'HH24:MI:SS') 
DB2 
DATE('2005-05-20') 
TIME('18:59:59') 
TIEMSTAMP('2007-2-1', '21:12:12') 
TIEMSTAMP('2007-2-1 21:12:12')
   www.2cto.com 
DB2也有TO_CHAR 和 TO_DATE函數,但只能提供固定的轉換格式,如下
TO_CHAR (timestamp_expression_r_r,'YYY-MM-DD HH24:MI:SS') 
TO_DATE (string_expression_r_r, 'YYY-MM-DD HH24:MI:SS')
 
7、快速清空大表
Oracle:
truncate table TableName ;
DB2:
alter table TableName active not logged initially with empty table;
 
8、建立類似表
Oracle:
create table a as select * from b ;
DB2:
create table a like b ;
 
9、修改欄位長度或類型:
ORACLE:
ALTER TABLE NODES MODIFY NODE_NAME varchar(32);
DB2:
alter table NODES ALTER NODE_NAME SET DATA TYPE varchar(32);
 
10、空值處理得到abc
Oracle:
SELECT 'abc' || c1 FROM t1 (c1 IS NULL) 
DB2 :
SELECT 'abc‘ || COALESCE(c1,'') FROM t1
 
11、建立 indexes
Oralce:
Create TABLE T1 .............IN DATA_TA
Create Index ........ ON T1  ...... IN INDX_TS
   www.2cto.com 
DB2:
Create TABLE T1 ........ IN DATA_TS INDEX IN INDX_TS
Create INDEX  .....ON T1
 
12、更改列名
oracle :
alter table test rename column mail to mail2;
db2 
不提供更改列名功能(解決辦法同刪除,或者通過建立一個新視圖解決)
13、更改列類型
oracle :alter table test modify column (mail2 integer);
db2    :alter table test alter mail varchar(256) 只可以加寬,不能更改類型
 
14 建立PROCEDURE的參數的區別
1)參數類型和參數名稱的位置不同
db2:
CREATE PROCEDURE PRO1 (IN OrgID int)
oracle:
CREATE PROCEDURE PRO1 (OrgID IN int)
2)同時作為輸入輸出參數的寫法不同
db2:  
CREATE PROCEDURE PRO1 (INOUT OrgID int)    INOUT連著寫
oracle:  www.2cto.com 
CREATE PROCEDURE PRO1 (OrgID IN OUT int)    IN OUT中間空格隔開,而且必須IN在OUT之前
3)沒有輸入或輸出參數時
db2: 
CREATE PROCEDURE PRO1 ()   
oracle:
CREATE PROCEDURE PRO1 不能有空的括弧
 
變數定義和BEGIN END體的位置不同
        db2中變數定義在BEGIN END體內,並且每個變數都要用DECLARE聲明;預存程序結束時,END後跟P1,並且不需要分號
        oracle中變數定義必須在BEGIN END體外,變數都不需要用DECLARE聲明(有種說法是,第一個變數需要DECLARE,其他變數不需要);預存程序結束時,END後跟預存程序的名稱,並且需要分號       
 db2:
CREATE PROCEDURE PRO1()
 LANGUAGE SQL   
       P1: BEGIN
          --變數定義
           DECLARE INSERT_DATE TIMESTAMP;
           DECLARE ALLDEPT_NO  VARCHAR(20);
           --具體操作  www.2cto.com 
           SELECT a FROM TAB_1;
                          .........
            END P1
oracle: 
CREATE PROCEDURE PRO1
          IS
         --變數定義
         INSERT_DATE TIMESTAMP;
         ALLDEPT_NO  VARCHAR(20);
          BEGIN
            --具體操作
         SELECT a FROM TAB_1;
                       .........
         END PRO1;
 
15、控制語句的不同
 db2:   
 IF …THEN ......ELSEIF THEN .... END IF;
 oracle:
IF …THEN ......ELSIF  THEN .... END IF;
 
16、如何執行指令碼SQL檔案
Oracle:
@$PATH/filename.sql;
DB2:  www.2cto.com 
db2 -tvf $PATH/filename.sql
 
17、查看目前使用者的表和視圖
DB2:
LIST   TABLES
ORACLE:  
SELECT   *   FROM   TBAB;
 
DB2:DROP   TABLE刪除表和定義。LIST   TABLES發現表不存在了。
ORACLE:DROP   TABLE刪除表的內容保留表的定義。可以看到表。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.