系统目录的结构

在使用缺省数据库语言环境的区分大小写数据库(美国英语 ISO 8859-1 代码集)中,这些表中的字符列为 CHAR 和 VARCHAR 数据类型。对于所有其他语言环境,字符列为 NLS 数据类型(NCHAR 和 NVARCHAR)。有关字符数据类型整理顺序中差别的信息,请参阅《GBase 8s GLS 用户指南》。另请参阅本出版物的数据类型章节。

不区分大小写的数据库中的字符列

在使用 NLSCASE INSENSITIVE 关键字创建且使用缺省数据库语言环境(美国英语 ISO 8859-1 代码集)的数据库中,系统目录表中的字符列为 CHAR 和 VARCHAR 数据类型,这些类型支持区分大小写的查询。对于所有其他数据库语言环境,系统目录表中的字符列数据类型为 NLS 数据类型(NCHAR 和 NVARCHAR),但存在以下特定例外情况:
Table_name.Column_name 数据类型
sysams.am_sptype CHAR(3)
syscolauth.colauth CHAR(3)
sysdefaults.class CHAR(1)
sysfragauth.fragauth CHAR(6)
sysinherits.class CHAR(1)
syslangauth.langauth CHAR(1)
sysprocauth.procauth CHAR(1)
sysprocedures.mode CHAR(1)
systabauth.tabauth CHAR(9)
systriggers.event CHAR(1)
sysxtdtypeauth.auth CHAR(2)

在上述每个列中,区分大小写的编码可记录数据库服务器实用程序在对这些系统目录表的查询中所需的信息。在不区分大小写的数据库中,如果数据库对象的不同属性编码为相同字母的不同大小写,查询可能从 NCHAR 或 NVARCHAR 列中存储的数据返回不正确的结果。要避免丢失信息,CHAR 数据类型用于上面列出的系统目录列。