返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

advance_xlog_file_num
参数说明:用于控制在后台周期性地提前初始化xlog 文件的数目。该参数是为了避免
事务提交时执行xlog 文件初始化影响性能,但仅在超重负载时才可能出现,因此一般不用
配置。
该参数属于POSTMASTER 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:整型,0~1000000(0 表示不提前初始化)。例如,取值10,表示后台线程
会周期性地根据当前xlog 写入位置提前初始化10 个xlog 文件。
默认值:0

GBase 8s主要支持以下字符串类型及对应SQLT类型:


C
(64位系统
)


SQLT类型

Char[n]
1
CHAR(n) /NCHARn<=32767
SQLT_CHR/
SQLT_STR/
SQLT_AVC/
SQLT_AFC/
SQLT_VCS
CHAR[N]

Varcar(n)/NVARCHAR,n
<=255
CHAR[N]
2048
LVARCHAR(N) n<32739

在GCI接口中,访问GBase 8s系统中的字符串类型数据,类型指定为SQLT_CHR,SQLT_STR

SQLT_AVC ,SQLT_VCS时效果是相同的,并没有区别。

但在不同厂家配置中,GCI接口返回字符串类型会有所不同:


factory
SQLT

1
SQLT_STR
CHAR
1
SQLT_STR
VARCHAR
1
SQLT_STR
LVARCHAR
2
SQLT_AFC
CHAR
2
SQLT_CHR
VARCHAR
2
SQLT_CHR
LVARCHAR
3
SQLT_AFC
CHAR
3
SQLT_CHR
VARCHAR
3
SQLT_CHR
LVARCHAR

其中指定为SQLT_AFC类型访问数据库时,在数据绑定时,其缓存可以不包含字符串结
束 符的位置。比如向char(10)字段插入一个10字节的字符串,其绑定的缓存大小可以申
请为只 有10字节大小。此时由于并不包含字符串结束符, 使用strlen获取长度是大于或
等于10的。
其他的字符串类型, 其缓存大小需加上结束符位置,而绑定时长度则是strlen()的长度。
两者差异在进行char(1)类型字段访问是最为明显。如果使用SQLT_AFC类型获取该字段
数 据,缓存大小可以设置为1。但是其他类型获取时, 会报截断错误。插入过程也是同
样, SQLT_AFC类型时, 可以在缓存为1字节情况下正常插入, 但是其他类型一般(有
可能会有 随机性)会报截断错误。
例:

Char ch = ‘i’;
rc=GCIBindByPos(stmt,&Bindp[0],errhp,1,(dvoid*)&ch,(sb4)1,SQLT_AFC,NULL,NULL,NUL
L,0,NULL,GCI_DEFAULT);

GBase 8s GCI 接口使用指南

南大通用数据技术股份有限公司 7
上例中,类型指定SQLT_AFC可正常插入,但如果是其他类型SQLT_CHR则可能报截断错
误,因此此时(&ch)字符串没有结束符。

NVARCHAR 数据类型存储可变长度字符串。字符串可以包括数字、符号以及单字节
和(在某些语言环境中)多字节字符。
VARCHAR 与 NVARCHAR 数据类型之间的主要差别在于整理顺序。VARCHAR 数据的整理
遵循代码集顺序,但如果 DB_LOCALE(或 SET COLLATION)指定定义了本地化整理顺序的
语言环境,那么 NVARCHAR 整理可以是特定于语言环境的。(整理 VARCHAR 值一节描
述了例外情况。)
声明为 NVARCHAR 的列,无圆括号或参数,具有一个字节的最大大小并且保留的大小
置零。
NVARCHAR 数据类型声明中的第一个参数可能受字符类型声明中的逻辑字符语义一节
中描述的 SQL_LOGICAL_CHAR 配置参数影响。
在使用 NLSCASE
INSENSITIVE 属性创建的数据库中,对 NVARCHAR 字符串的操作会忽
略字母大小写,
从而在对数据值排序时不管字母大小写。
例如,
在查询返回的整理列表中,
NVARCHAR 字符串 "GBASE" 可能位于 "GbasE" 或 "gBase" 之前或之后,具体取决于检索
这些数据字符串的顺序,因为以下所有 NVARCHAR 字符串会被视为重复值:
"gbase" "GBASE" "gbasE" "GBase" "GbasE" "Gbase" "GBAse" 等等

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