字符列中支持的逻辑字符

对于您声明作为内置字符数据类型的新列,显式或缺省大小规格以字节为单位阐述,除非 SQL_LOGICAL_CHAR 配置参数已经为当前数据库启用逻辑字符语义。设计此功能的目的是降低在本地语言环境中调整数据字符串的风险,并支持多字符代码设置,例如:UTF-8。启用此功能会导致 SQL 语法分析器以逻辑字符而不是字节作为单位来解释声明的列大小,此功能声明的存储大小由一个正整数值,基于 SQL_LOGICAL_CHAR 设置分配新的字符列的倍数。
  • 如果此设置的值为 OFF1 ,那么 SQL_LOGICAL_CHAR 配置参数没有影响。
  • 如果该值设置为 ON ,而不是一个数字,该扩充因素是存储数据库代码集中最大逻辑字符所需的字节数。(设置 ON 相当于 4 ,是最大的有效数。)

该扩充因素的值是数据库的属性,其基于创建数据库时的 QL_LOGICAL_CHAR 设置而不是由 ALTER TABLE 语句声明(如果这两个设置不同)。

当启用此功能时,声明其为 VARCHAR 或 NCHAR 数据类型,只有最大大小规格由此功能扩展。保留的大小是由数据类型声明中的显示或缺省的 reserved 值指定的字节数,因为逻辑字符的最小大小为 1 字节。

用户定义的字符列类型的大小规范(UDTs)通常解释为字节并不会被此功能影响。存储字符串作为大对象的列(例如:CLOB 和 TEXT),同样不受影响。

有关 SQL_LOGICAL_CHAR 配置参数的更多信息,请参阅 GBase 8s 管理员参考手册。有关多字节语言环境和逻辑符号的其它信息,请参阅 GBase 8s GLS 用户指南