返回首页

gbase数据、南大通用产品文档:GBase8sCHAR(n) 数据类型

更新日期:2024年09月11日

CHAR 数据类型存储任何字母、数字和符号组成的字符串。它可以根据数据库语言环
境存储单字节和多字节字符。
CHAR(n) 列的长度为 n 个字节,
其中 1 ≤ n ≤ 32,767。
如果未指定 n,
那么 CHAR(1)
是缺省长度。字符列通常存储字母数字字符串,例如:姓名、地址和电话号码等等。当将
值作为 CHAR(n) 检索或存储时,只传输 n 个字节的数据。如果字符串短于 n 个字节,那
么用空格将该字符串延长到声明的长度。如果数据值大于 n 个字节,那么插入或检索已从
右边截断至长度为 n 的数据字符串,并且数据库服务器不会发生异常。
这在多字节语言环境中不会创建部分字符。在从右至左语言环境(如阿拉伯语、希伯
来语或波斯语)中,是从左边截断的。
CHAR 数据类型声明中的大小规范可受字符类型声明中的逻辑字符语义一节中描述的
SQL_LOGICAL_CHAR 功能影响。
将 CHAR 值看作数字值
CHAR 数据类型存储数字值算术字符串操作数如果您打算对存储在列中的数字执行计

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 87 -

算,那么应将数字数据类型指定给该列。虽然可以在 CHAR 列中存储数字,但也许不能在
某些算术运算中使用这些数字。例如:如果将总和插入 CHAR 列中,并且如果 CHAR 列太
小而无法保存该值,那么可能会遇到溢出问题。在这种情况下,插入操作将失败。如果将
有前导零的数字(如一些邮政编码)作为数字类型 INTEGER 或 SMALLINT 存储,那么会除
去前导零。相反,可以将这些数字存储在 CHAR 列中。
排序和关系比较
CHAR 数据类型整理整理CHAR 数据类型一般而言,对 CHAR 值进行排序的整理顺序就
是代码集中字符的顺序。
(一个例外情况是有范围的 MATCHES 运算符;
请参阅整理 VARCHAR
值。)有关整理顺序的更多信息,请参阅《GBase 8s GLS 用户指南》。
代码集东亚语言环境多字节对于多字节语言环境,数据库支持代码集中的任何多字节
字符。当以 CHAR 数据类型存储多字节字符时,务必计算所需字节的数目。有关多字节字
符和语言环境的更多信息,请参阅《GBase 8s GLS 用户指南》。
关系运算符(), 空格填充 CHAR 值可将 CHAR 值与其他 CHAR 值进行比较,方法是用
空格填充右边长度较小的值直到这些值具有相同的长度,然后使用整理的代码集顺序来比
较这两个值。
CHAR 类型的不可打印字符
CHAR 值可以包括制表符、换行符、空格和不可打印的字符。但是,必须使用应用程序
来将不可打印的字符插入主变量中,并将主变量插入数据库中。在将不可打印字符传递至
数据库服务器之后,就可以存储或检索这些字符。在选择了不可打印字符之后,将其访存
到主变量中并使用您的显示机制来显示这些字符。
一个重要的异常是 ASCII 代码中的首值在 CHAR 数据类型的列中被用作数据结束终
止符。由于这个原因,不能从 CHAR 列检索相同字符串中的任何后续字符,因为数据库服
务器仅读取此空终止符前面的字符(如果有)。例如,不能将以下 7 字节的字符串用作长
度为 7 个字节的 CHAR 数据类型:
abc\0def
如果尝试使用 DB-Access 来显示不可打印字符,那么屏幕会返回不一致的结果。(哪
些字符是不可打印字符是特定于语言环境的。有关更多信息,请参阅《GBase 8s GLS 用户
指南》中客户机和数据库服务器之间的代码集转换的论述。)

IFX_EXTDIRECTIVES 环境变量指定查询优化器是否允许来自 sysdirectives 系统目
录表的外部查询优化伪指令应用到现有应用程序的查询中。
您有两个用于设置 IFX_EXTDIRECTIVES 环境变量的选项:
全局,用于所有用户:
在服务器上,将环境中的 IFX_EXTDIRECTIVES 设置为用户 gbasedbt,然后运
行 oninit 命令。
特定于客户机:
在客户机上,设置环境中的 IFX_EXTDIRECTIVES。在客户机环境中设置
IFX_EXTDIRECTIVES 时,无论使用哪种服务器(全局)设置,都会使用客户机设
置。
您可以使用 onstat -g env 命令来确定服务器设置。
可指定 ON 和 OFF 或 1 和 0 来设置环境变量。


GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 171 -
1 接受的外部优化器伪指令
0 不接受的外部优化器伪指令
如果数据库服务器配置文件中的参数 EXT_DIRECTIVES 和客户机系统上的环境变量
设置 IFX_EXTDIRECTIVES 都已设置为 1 或 ON,那么给定客户机应用程序内的查询
可使用外部伪指令。如果未设置 IFX_EXTDIRECTIVES,那么仅当 ONCONFIG 参数
EXT_DIRECTIVES 设置为 2 时才支持外部伪指令。下表概括了支持外部优化器伪指令的
有效 IFX_EXTDIRECTIVES 和 EXT_DIRECTIVES 设置的效果。
表 1. 外部伪指令上的 IFX_EXTDIRECTIVES 和 EXT_DIRECTIVES 设置的效果

EXT_DIRECTIVES = 0 EXT_DIRECTIVES = 1 EXT_DIRECTIVES = 2
IFX_EXTDIRECTIVES 无设

OFF
OFF
ON
IFX_EXTDIRECTIVES0 =
OFF
OFF
OFF
OFF
IFX_EXTDIRECTIVES1 = ON
OFF
ON
ON

数据库服务器将除了 1 或 2(或无设置)的任何 EXT_DIRECTIVES 设置解释为等同
于 OFF,从而禁用外部伪指令的支持。IFX_EXTDIRECTIVES 除了 1 以外的任何值对客户
机具有相同效果。
有关如何定义外部优化器伪指令的信息,请参阅 GBase 8s SQL 指南:语法 中对
SQL 的 SAVE EXTERNAL DIRECTIVES 语句的描述。有关 EXT_DIRECTIVES 配置参
数的更多信息,请参阅《GBase 8s 管理员参考》。有关伪指令对性能影响的更多信息,
请参阅《GBase 8s 性能指南》。

GBA-01BR-0062
错误码
错误标识
错误显示信息
GBA-01BR-0062

open DC data file Error
错误出现原因
打开数据文件错误
分析与建议
检查数据文件的权限及状态