如果设置 DB2_COMPATIBILITY_VECTOR 注册表变量以支持兼容
Oracle 数据字典的视图,那么在创建数据库时会自动创建这些视图。
通过将
DB2_COMPATIBILITY_VECTOR 注册表变量设置为十六进制值 0x400(位位置 11),然后停止并重新启动该实例以使新设置生效,从而启用与 Oracle 数据字典兼容的视图支持。
db2set DB2_COMPATIBILITY_VECTOR=400
db2stop
db2start
要充分利用 Oracle 应用程序的 DB2 兼容性功能部件,DB2_COMPATIBILITY_VECTOR 的推荐设置是 ORA,这将设置所有兼容性位。
数据字典是一个数据库元数据存储库。数据字典视图会进行自我描述。DICTIONARY 视图将返回一个列表,该列表中包含所有的数据字典视图以及用于描述各视图内容的注释。DICT_COLUMNS 视图将返回一个列表,该列表包含所有数据字典视图中的所有列。对于这两个视图,可确定可用信息及访问方式。
每个数据字典视图都有三个不同版本,每个版本都通过视图名称前缀加以标识。
- ALL_* 视图返回有关当前用户可访问的对象的信息。
- DBA_* 视图返回有关数据库中的所有对象的信息(不管谁拥有这些对象)。
- USER_* 视图返回有关当前数据库用户拥有的对象的信息。
一部分版本不适用于每个视图。
对于每个与 Oracle 数据字典兼容的视图,数据字典定义包含 CREATE VIEW、CREATE PUBLIC SYNONYM 和 COMMENT 语句。表 1 中列示了这些在 SYSIBMADM 模式中创建的视图。
表 1. 兼容 Oracle 数据字典的视图类别 |
定义的视图 |
常规 |
DICTIONARY、DICT_COLUMNS、
USER_CATALOG、DBA_CATALOG、ALL_CATALOG、
USER_DEPENDENCIES、DBA_DEPENDENCIES、ALL_DEPENDENCIES、
USER_OBJECTS、DBA_OBJECTS、ALL_OBJECTS、
USER_SEQUENCES、DBA_SEQUENCES、ALL_SEQUENCES、
USER_TABLESPACES 和 DBA_TABLESPACES
|
表或视图 |
USER_CONSTRAINTS、DBA_CONSTRAINTS、ALL_CONSTRAINTS、
USER_CONS_COLUMNS、DBA_CONS_COLUMNS、ALL_CONS_COLUMNS、
USER_INDEXES、DBA_INDEXES、ALL_INDEXES、
USER_IND_COLUMNS、DBA_IND_COLUMNS、ALL_IND_COLUMNS、
USER_TAB_PARTITIONS、DBA_TAB_PARTITIONS、ALL_TAB_PARTITIONS、
USER_PART_TABLES、DBA_PART_TABLES、ALL_PART_TABLES、
USER_PART_KEY_COLUMNS、DBA_PART_KEY_COLUMNS、ALL_PART_KEY_COLUMNS、
USER_SYNONYMS、DBA_SYNONYMS、ALL_SYNONYMS、
USER_TABLES、DBA_TABLES、ALL_TABLES、
USER_TAB_COMMENTS、DBA_TAB_COMMENTS、ALL_TAB_COMMENTS、
USER_TAB_COLUMNS、DBA_TAB_COLUMNS、ALL_TAB_COLUMNS、
USER_COL_COMMENTS、DBA_COL_COMMENTS、ALL_COL_COMMENTS、
USER_TAB_COL_STATISTICS、DBA_TAB_COL_STATISTICS、ALL_TAB_COL_STATISTICS、
USER_VIEWS、DBA_VIEWS、ALL_VIEWS、
USER_VIEW_COLUMNS、DBA_VIEW_COLUMNS 和 ALL_VIEW_COLUMNS
|
编程对象 |
USER_PROCEDURES、DBA_PROCEDURES、ALL_PROCEDURES、
USER_SOURCE、DBA_SOURCE、ALL_SOURCE、
USER_TRIGGERS、DBA_TRIGGERS、ALL_TRIGGERS、
USER_ERRORS、DBA_ERRORS、ALL_ERRORS、
USER_ARGUMENTS、DBA_ARGUMENTS 和 ALL_ARGUMENTS
|
安全性 |
USER_ROLE_PRIVS、DBA_ROLE_PRIVS、ROLE_ROLE_PRIVS、
SESSION_ROLES、
USER_SYS_PRIVS、DBA_SYS_PRIVS、ROLE_SYS_PRIVS、
SESSION_PRIVS、
USER_TAB_PRIVS、DBA_TAB_PRIVS、ALL_TAB_PRIVS、ROLE_TAB_PRIVS、
USER_TAB_PRIVS_MADE、ALL_TAB_PRIVS_MADE、
USER_TAB_PRIVS_RECD、ALL_TAB_PRIVS_RECD 和
DBA_ROLES
|
示例
下列示例说明如何
启用和使用名为 MYDB 的数据库的与数据字典兼容的视图并获得相关信息:
- 启用创建与数据字典兼容的视图:
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
db2 create db mydb
- 确定有哪些与数据字典兼容的视图可用:
connect to mydb
select * from dictionary
- 使用 USER_SYS_PRIVS 视图来显示所有已授予当前用户的系统特权:
connect to mydb
select * from user_sys_privs
- 确定 DBA_TABLES 视图的列定义:
connect to mydb
describe select * from dba_tables