使用 SQL_LOGICAL_CHAR 配置参数来启用或禁用在内建的字符数据类型声明中大小规格的扩展。
1 = 声明的大小无扩展。
2 = 使用 2 作为声明的大小的扩展因子。
3 = 使用 3 作为声明的大小的扩展因子。
4 = 使用 4 作为声明的大小的扩展因子。
ON = 使用 M 作为扩展因子,此处 M 是在当前数据库代码集中任何逻辑字符需要的以字节记的最大长度。依赖于 DB_LOCALE 设置, M 有一个从 1(单字节语言环境中)直至 4 的整数范围。
对于在单语言环境中开发但是在多语言环境中部署的应用,这个特性可降低在数据条目操作期间截断多字节逻辑字符的风险。
您为这个参数指定的设置必须是下列值之一:
SQL_LOGICAL_CHAR 配置参数是否设置为启用或禁用声明的存储大小的扩展,对于 GBase 8s 实例的所有会话,其设置指定数据类型声明如何解释。
当 SQL_LOGICAL_CHAR 设置为有效的数字,且当前会话创建数据库时, GBase 8s 比较 SQL_LOGICAL_CHAR 值与任何逻辑字符将用于数据库的代码集的最大字节数。
如果 SQL_LOGICAL_CHAR 设置大于最大字节数,则数据库使用语言环境的最大值作为新的扩展因子,取代配置文件指定的因子。在配置文件中的 SQL_LOGICAL_CHAR 设置保持不变,继续作为其他用户数据库的缺省扩展因子发挥作用。
类似地,如果会话的 SQL_LOGICAL_CHAR 值自动地重置为一个数字,如上所述,但同一会话随后连接到另一个数据库,其语言环境使用一个代码集,在该代码集中逻辑字符要求比当前扩展因子更大的存储大小, 则在用户会话连接到那个数据库时, GBase 8s 使用新代码集的最大字节数作为新的扩展因子,而不使用 SQL_LOGICAL_CHAR 的当前设置。
如果当前会话连接到一个数据库时,该数据库在 DB_LOCALE 代码集中的最大逻辑字符要求一个比当前 SQL_LOGICAL_CHAR 设置更小的字节数,则必须设置 SQL_LOGICAL_CHAR 为 ON,而不是一个数字。有效的扩展因子将总是小于或等于语言环境的最大字符大小。