DB2_COMPATIBILITY_VECTOR 注册表变量用于启用一项或多项自从 DB2® 版本 9.5 开始引入的 DB2 兼容性功能。
这些功能使您能够方便地将面向其他关系数据库供应商编写的应用程序迁移到 DB2 版本 9.5 或更高版本。
| 位的位置 | 兼容性功能 | 描述 |
|---|---|---|
| 1(0x01) | ROWNUM | 允许使用 ROWNUM 作为 ROW_NUMBER() OVER() 的同义词,并允许 ROWNUM 在 SQL 语句的 WHERE 子句中出现。 |
| 2(0x02) | DUAL | 将对“DUAL”进行的未限定表引用解析为 SYSIBM.DUAL。 |
| 3(0x04) | 外连接运算符 | 启用对外连接运算符(+)的支持。 |
| 4(0x08) | 分层查询 | 启用对使用 CONNECT BY 子句进行的分层查询的支持。 |
| 5(0x10) | NUMBER 数据类型 1 | 启用 NUMBER 数据类型以及相关联的数字处理。创建启用了此支持的数据库之后,将 number_compat 数据库配置参数设置为 ON。 |
| 6 (0x20) | VARCHAR2 数据类型 1 | 启用 VARCHAR2 和 NVARCHAR2 数据类型以及相关联的字符串处理。创建启用了此支持的数据库之后,将 varchar2_compat 数据库配置参数设置为 ON。 |
| 7 (0x40) | DATE 数据类型 1 | 允许将 DATE 数据类型用作 TIMESTAMP(0),即,组合的日期和时间值。创建启用了此支持的数据库之后,将 date_compat 数据库配置参数设置为 ON。 |
| 8 (0x80) | TRUNCATE TABLE | 启用 TRUNCATE 语句的备用语义,在此语义下,IMMEDIATE 是可选关键字,如果未指定此关键字,那么将假定它是缺省关键字。如果 TRUNCATE 语句不是逻辑工作单元中的第一条语句,那么将在执行 TRUNCATE 语句前执行隐式的落实操作。 |
| 9 (0x100) | 字符文字 | 允许将 CHAR 或 GRAPHIC 数据类型(而不是 VARCHAR 或 VARGRAPHIC 数据类型)赋予字节长度小于或等于 254 的字符和图形字符串常量。 |
| 10 (0x200) | 集合方法 | 允许使用方法对数组执行操作,例如 first、last、next 和 previous。并且,允许在对特定数组元素的引用中使用圆括号来代替方括号;例如,array1(i) 引用 array1 的元素 i。 |
| 11 (0x400) | 兼容数据字典的视图 1 | 允许创建兼容数据字典的视图。 |
| 12 (0x800) | PL/SQL 编译 2 | 允许编译和执行 PL/SQL 语句和语言元素。 |
| 13 (0x1000) | 不敏感游标 | 在 SELECT 语句未显式指定 FOR UPDATE 的情况下,使定义为 WITH RETURN 的游标不敏感 |
| 14 (0x2000) | INOUT 参数 | 允许对 INOUT 参数声明指定 DEFAULT |
| 17 (0x10000) | SQL 数据访问级别强制执行 | 启用运行时例程 SQL 数据访问级别强制执行 |
|
||
注册表变量的新设置直到实例停止并重新启动后才会生效。必须对现有的 DB2 程序包进行重新绑定才能使更改生效;未以显式方式进行重新绑定的程序包将在下次隐式重新绑定时接受更改。
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
db2set DB2_COMPATIBILITY_VECTOR=
db2stop
db2start
注意,如果在启用了 NUMBER 数据类型或 VARCHAR2 数据类型的情况下、在允许使用
DATE 数据类型作为 TIMESTAMP(0) 的情况下或者在允许创建兼容 Oracle
数据字典的视图的情况下创建数据库,那么执行此 db2set
命令后,该数据库仍支持这些功能。