DB2 中的各种系统表介绍
表 1. SYSCAT.TABLES 视图的说明
列名数据类型描述
TABSCHEMA
VARCHAR(128)
记录 schema 的名字
TABNAME
VARCHAR(128)
记录数据库对象的名称。包括表、视图、别名等
TYPE
CHAR(1)
表示该数据库对象是表,视图还是别名 ('T'表示table; 'V'表示 view; 'N' 表示nickname; 'A' 表示 alias。)
COLCOUNT
SMALLINT
表或视图中列的个数
……
SYSCAT.VIEWS:视图的定义信息。详细说明见表 2。
表 2. SYSCAT.VIEWS 视图的说明
列名数据类型描述
VIEWSCHEMA
VARCHAR(128)
视图的 Schema
VIEWNAME
VARCHAR(128)
视图名称
READONLY
CHAR(1)
视图是否只读:
Y = 视图是只读
N = 视图不是只读
VALID
CHAR(1)
视图状态是否合法:
Y = 视图状态合法(valid)
X = 视图状态不合法(invalid)
TEXT
CLOB (64K)
视图的源程序(DDL)
……
SYSCAT.ROUTINES:DB2 UDF,系统方法(system-generated method),用户定义方法(user-defined method)和存储过程(SP)的定义。我们可以认为该视图包含了数据库中程序的定义。见表 3。
表 3. SYSCAT.ROUTINES 视图的说明
列名数据类型描述
ROUTINESCHEMA
VARCHAR(128)
记录程序的 schema
ROUTINENAME
VARCHAR(128)
记录程序名称
ROUTINETYPE
CHAR(1)
记录程序类型:
F = Function
M = Method
P = Procedure
SPECIFICNAME
VARCHAR(128)
程序实例的名称(可以指定,也可以由系统自动生成)
VALID
CHAR(1)
如果存储过程依赖的一些对象被删除或修改了,该存储过程必须要被重建
Y = SQL 存储过程是合法的
N = SQL 存储过程是非法的
X = SQL 存储过程是不可操作的
TEXT
CLOB(1M)
如果是用 SQL 编写的程序,该字段记录了其创建的 DDL
…
表 4 所示的 SYSCAT.ROUTINEDEP 说明了 DB2 UDF与其他对象的依赖关系。
表 4. SYSCAT.ROUTINEDEP 视图的说明
列名数据类型描述
ROUTINESCHEMA
VARCHAR(128)
依赖于其他对象的 DB2 程序的 schema
ROUTINENAME
VARCHAR(128)
依赖于其他对象的 DB2 程序的名称
BTYPE
CHAR(1)
依赖对象的类型:
A = Alias
S = Materialized query table
T = Table
V = View
BSCHEMA
VARCHAR(128)
被依赖的对象的 schema
BNAME
VARCHAR(128)
被依赖的对象的名称
表 5 所示的 SYSCAT.COLUMNS 说明了表或视图的每一个列的信息。
表 5. SYSCAT.COLUMNS 视图的说明
列名数据类型描述
TABSCHEMA
VARCHAR(128)
表或视图的 Schema
TABNAME
VARCHAR(128)
表或视图名称
COLNAME
VARCHAR(128)
列名称
KEYSEQ
SMALLINT
记录列在其表的主键的位置
表 6 所示的 SYSCAT.PACKAGEDEP 说明了 Pachage 与其他数据库对象的依赖关系。
表 6. SYSCAT.PACKAGEDEP 视图的说明
列名数据类型描述
PKGSCHEMA
VARCHAR(128)
Package 的 schema
PKGNAME
VARCHAR(18)
Package 的名称
BTYPE
CHAR(1)
依赖对象的类型:
A = Alias
B = Trigger
I = Index
S = Materialized query table
T = Table
V = View
BSCHEMA
VARCHAR(128)
被依赖的对象的 schema
BNAME
VARCHAR(128)
被依赖的对象的名称
表 7 所示的 SYSCAT.TABDEP 说明了视图或者固化视图和 DB2 对象之间的依赖关系。
表 7. SYSCAT.TABDEP 视图的说明
列名数据类型描述
TABSCHEMA
VARCHAR(128)
视图或者固化视图的 schema
TABNAME
VARCHAR(128)
视图或者固化视图的名称
DTYPE
CHAR(1)
视图的类型:
S = Materialized query table
V = View (untyped)
W = Typed view
BTYPE
CHAR(1)
依赖对象的类型:
A = Alias
S = Materialized query table
T = Table
V = View
BSCHEMA
VARCHAR(128)
被依赖的对象的 schema
BNAME
VARCHAR(128)
被依赖的对象的名称