Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


系统字典大小写敏感(cata_case_sensitive)

📄字数 1.0K
👁️阅读量 加载中...

引入版本

v11.0.0

功能描述

是否开启系统字典匹配时英文字母大小写敏感。

参数属性

属性属性值
参数类型BOOLEAN
默认值FALSE
取值范围TRUE,FALSE
影响范围系统级
修改方式离线修改,重启生效

使用场景说明

  1. 该参数控制系统进行字典匹配时的行为。
cata_case_sensitive作用及影响
true系统字典匹配时英文字母大小写敏感。
false系统字典匹配时英文字母大小写不敏感。
  1. 该参数使用场景受制于 def_compatible_mode 的配置,def_compatible_mode 的配置会影响客户端输入的标识符在系统内部的表现形式。
def_compatible_mode标识符处理方式
NONE词法处理阶段统一将标识符转换为大写
ORACLE词法处理阶段统一将标识符转换为大写
MYSQL不做处理
POSTGRESQL词法处理阶段统一将标识符转换为小写

注意

  1. 该参数对 SYSDBA.SYS_DATABASESSYSDBA.SYS_SCHEMASSYSDBA.SYS_USERS 这三张系统表的字典匹配不生效,它们始终采用英文大小写不敏感匹配策略。
  2. 该参数在系统开启 enable_sys_name_idx 场景下不生效。

示例

sql
-- 离线修改 cata_case_sensitive
 编辑 xugu.ini 修改 cata_case_sensitive,重启数据库服务后生效。

-- 在线查看 cata_case_sensitive
SQL> SHOW cata_case_sensitive;

/*
 * 场景一:
 *   1. 系统库下存在表名为 "t1" 的表;
 *   2. 开启系统字典匹配大小写敏感(cata_case_sensitive = true);
 *   3. 关闭兼容模式(def_compatible_mode = none);
 */
SQL> SELECT * FROM t1; -- [E5021] 表或视图不存在(虚谷在对词法解析时,会将标识符中的英文字符统一转换为大写字母);
SQL> SELECT * FROM "t1"; -- 可正常访问表数据(这里引用了虚谷特性,双引号包围的标识符会按照原始内容解析);

/*
 * 场景二:
 *   1. 系统库下存在表名为 "t1" 的表;
 *   2. 关闭系统字典匹配大小写敏感(cata_case_sensitive = false);
 *   3. 关闭兼容模式(def_compatible_mode = none);
 */
SQL> SELECT * FROM t1; -- 可正常访问表数据;