以下的文章主要向大家描述的是DB2 9.7 中的SQL兼容性,各位開發人員注意啦!如果您擁有 Oracle 數據庫技能以及希望在另一種數據庫平台上重用 PL/SQL 知識與代碼嗎?相信以下的文章將會為你提供相關的知識。
IBM DB2 for Linux, UNIX, and Windows (LUW) 已經完成了一項重大的改造。由於客戶一直要求提供節省成本的改進,最新版本 DB2 9.7 在大家熟悉的領域提供了許多新技術,比如自治自我管理)和深度壓縮見本期雜志中的 “DB2 9.7:全面改進”)。
但是,開發人員最感興趣的是與 SQL 兼容性相關的功能。這些特性讓客戶更容易采用 DB2 作為數據庫軟件,從而利用它的節省成本和高性能特性。即使客戶目前最熟悉其他數據庫系統,也很容易掌握 DB2。
在本文中,我將通過示例演示 DB2 9.7 中新的 SQL 兼容特性。首先討論觸發器和新的數據類型,然後談談對 Oracle SQL 和 PL/SQL 的支持,最後討論對象和並發改進。這樣所有開發人員都應該相信 DB2 是 “兼容的”。
首先,連接 Command Line Processor Plus (CLP Plus) 窗口見圖 1),把 “db2admin” 替換為您選擇的登錄 ID:
- clpplus db2admin@localhost:50000/sample
SQL 兼容性
使用 DB2 9.7 中新的 SQL 兼容性特性的第一步是啟用 DB2_COMPATIBILITY_VECTOR 參數。設置 db2set DB2_COMPATIBILITY_VECTOR=ORA,即可為後續的所有數據庫創建操作啟用與 Oracle 相關的 SQL 兼容性特性。對 DB2_COMPATIBILITY_VECTOR 使用的一些最重要的參數的解釋見表 1。
要啟用這個特性,您必須具有管理特權。在 DB2 命令窗口中輸入以下命令:
- db2set DB2_COMPATIBILITY_VECTOR=ORA
- db2stop
- db2start
要創建一個簡單的數據庫,輸入:db2 create database [dbname]。然後,可以輸入以下命令連接數據庫:
- db2 connect to [dbname];
下一步是創建使用 Oracle 數據類型的表。在 CLP Plus 窗口或 IBM Data Studio 中輸入下面的 CREATE TABLE 語句:
- Create table employee (EMPNO NUMBER(5), ENAME VARCHAR2(50), DEPTNO NUMBER(5))
在 DB2 9.7 中,可以通過 CLP Plus 界面體驗 SQL 兼容性特性
PL/SQL 特性
現在討論支持創建 PL/SQL 過程的特性。DB2 9.7 支持:
用戶定義的包
PL/SQL 過程/函數/匿名塊
內置的包DBMS_OUT.PUT_LINE、DBMS_PIPE、DBMS_UTL 等)
關聯 (INDEX BY) 數組
Varrays
觸發器
- %ROWTYPE
- %TYPE
- EXCEPTIONS
- Ref-Cursors
注意,只有 DB2 9.7 for LUW 的 Enterprise Server Edition 和 Workgroup Edition 提供 PL/SQL 支持。在 DB2 Express-C、DB2 Express 和 DB2 Personal Edition 中不支持 PL/SQL。
完整內容的學習,請訪問:
http://www.ibm.com/developerworks/cn/data