首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

DB2 實現 Oracle 常用功能對照表:分頁、日期、字串連接、連接查詢、腳本執行

     編輯:Oracle 資料庫相關知識

前言

實務中常需在 DB2 實現 Oracle 功能,以下以 Oracle 8i / DB2 7.x 為例整理常用對照(方法不止一種,歡迎補充)。

1. 取前 N 筆資料

-- Oracle
SELECT * FROM user.bsempms WHERE rownum <= n;

-- DB2
SELECT * FROM db2admin.bsempms FETCH FIRST n ROWS ONLY;
-- 或使用 ROW_NUMBER() OVER()

2. 取得目前日期時間

-- Oracle
SELECT sysdate FROM dual;

-- DB2
SELECT current timestamp FROM sysibm.sysdummy1;

3. 字串連接

-- Oracle
SELECT emp_no || emp_nam FROM bsempms;
SELECT concat(emp_no, emp_nam) FROM bsempms;

-- DB2
SELECT emp_no || emp_nam FROM db2admin.bsempms;
SELECT emp_no CONCAT emp_nam FROM db2admin.bsempms;

4. 查詢表結構

-- Oracle
DESC table_name;
-- 或查詢 user_tab_columns

-- DB2
DESCRIBE TABLE db2admin.table_name;

5. 內連接

-- Oracle
SELECT a.* FROM bsempms a, bsdptms b WHERE a.dpt_no = b.dpt_no;

-- DB2
SELECT * FROM db2admin.bsempms
INNER JOIN db2admin.bsdptms
  ON db2admin.bsempms.dpt_no = db2admin.bsdptms.dpt_no;

6. 外連接(右、左、全、組合)

-- Oracle 右外連接
SELECT a.* FROM bsempms a, bsdptms b WHERE a.dpt_no = b.dpt_no(+);

-- Oracle 左外連接
SELECT a.* FROM bsempms a, bsdptms b WHERE a.dpt_no(+) = b.dpt_no;

-- DB2 右外連接
SELECT * FROM db2admin.bsempms
RIGHT OUTER JOIN db2admin.bsdptms
  ON db2admin.bsempms.dpt_no = db2admin.bsdptms.dpt_no;

-- DB2 左外連接
SELECT * FROM db2admin.bsempms
LEFT OUTER JOIN db2admin.bsdptms
  ON db2admin.bsempms.dpt_no = db2admin.bsdptms.dpt_no;

-- DB2 全外連接
SELECT * FROM db2admin.bsempms
FULL OUTER JOIN db2admin.bsdptms
  ON db2admin.bsempms.dpt_no = db2admin.bsdptms.dpt_no;

7. 執行 SQL 腳本檔

-- Oracle
SQL> @$PATH/filename.sql;

-- DB2
db2 -tvf $PATH/filename.sql   -- 檔案每行以 ; 結尾
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved