以下的文章主要向大家描述的是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
【编辑推荐】