返回首页

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

更新日期:2024年09月11日

A-G

ascii(string)
描述:参数string 的第一个字符的ASCII 码。
返回值类型:integer
示例:
gbase=# SELECT ascii('xyz');

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
104
ascii
-------
120
(1 row)

bit_length(string)
描述:字符串的位数。
返回值类型:integer
示例:
gbase=# SELECT bit_length('world');
bit_length
------------
40
(1 row)

btrim(string text [, characters text])
描述:从string 开头和结尾删除只包含characters 中字符(缺省是空白)的最长字符串。
返回值类型:text
示例:
gbase=# SELECT btrim('sring' , 'ing');
btrim
-------
sr
(1 row)

char_length(string)或character_length(string)
描述:字符串中的字符个数。
返回值类型:int
示例:
gbase=# SELECT char_length('hello');
char_length
-------------
5

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
105
(1 row)

chr(integer)
描述:给出ASCII 码的字符。
返回值类型:varchar
示例:
gbase=# SELECT chr(65);
chr
-----
A
(1 row)

concat(str1,str2)
描述:将字符串str1 和str2 连接并返回。
数据库SQL 兼容模式设置为MY 的情况下,参数str1 或str2 为NULL 会导致返回结果
为NULL。
返回值类型:varchar
示例:
gbase=# SELECT concat('Hello', ' World!');
concat
--------------
Hello World!
(1 row)
gbase=# SELECT concat('Hello', NULL);
concat
--------
Hello
(1 row)

concat_ws(sep text, str"any" [, str"any" [, ...] ])
描述:以第一个参数为分隔符,链接第二个以后的所有参数。NULL 参数被忽略。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
106
如果第一个参数值是NULL,会导致返回结果为NULL。
如果第一个参数值是空字符串('')
,且数据库SQL 兼容模式设置为A 的情况下,
会导致返回结果为NULL。这是因为A 兼容模式>将''作为NULL 处理,避免此类
行为,可以将数据库SQL 兼容模式改为B、C 或者PG。
返回值类型:text
示例:
gbase=# SELECT concat_ws(',', 'ABCDE', 2, NULL, 22);
concat_ws
------------
ABCDE,2,22
(1 row)

convert(string bytea, src_encoding name, dest_encoding name)
描述:以dest_encoding 指定的目标编码方式转化字符串bytea。src_encoding 指定源编
码方式,在该编码下,string 必须是合法的。
返回值类型:bytea
示例:
gbase=# SELECT convert('text_in_utf8', 'UTF8', 'GBK');
convert
----------------------------
\x746578745f696e5f75746638
(1 row)
如GBK 和LATIN1 之间的转换规则是不存在的,具体转换规则可以通过查看系统表
pg_conversion 获得。
示例:
gbase=# show server_encoding;
server_encoding
-----------------
SQL_ASCII

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
107
(1 row)
gbase=# SELECT convert_from('some text', 'GBK');
convert_from
--------------
some text
(1 row)
gbase=# SELECT convert_to('some text', 'GBK');
convert_to
----------------------
\x736f6d652074657874
(1 row)
db_latin1=# SELECT convert('some text', 'GBK', 'LATIN1');
convert
----------------------
\x736f6d652074657874
(1 row)

convert_from(string bytea, src_encoding name)
描述:以数据库的编码方式转化字符串bytea。
src_encoding 指定源编码方式,在该编码下,string 必须是合法的。
返回值类型:text
示例:
gbase=# SELECT convert_from('text_in_utf8', 'UTF8');
convert_from
--------------
text_in_utf8
(1 row)

convert_to(string text, dest_encoding name)
描述:将字符串转化为dest_encoding 的编码格式。
返回值类型:bytea
示例:
gbase=# SELECT convert_to('some text', 'UTF8');
convert_to
----------------------

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
108
\x736f6d652074657874
(1 row)

decode(string text, format text)
描述:将二进制数据从文本数据中解码。
返回值类型:bytea
示例:
gbase=# SELECT decode('MTIzAAE=', 'base64');
decode
--------------
\x3132330001
(1 row)

encode(data bytea, format text)
描述:将二进制数据编码为文本数据。
返回值类型:text
示例:
gbase=# SELECT encode(E'123\\000\\001', 'base64');
encode
----------
MTIzAAE=
(1 row)
若字符串中存在换行符,如字符串由一个换行符和一个空格组成,在GBase 8c 中
LENGTH 和LENGTHB 的值为2。
对于CHAR(n)类型,
n 是指字符个数。
因此,
对于多字节编码的字符集,
LENGTHB
函数返回的长度可能大于n。
GBase 8c 目前支持多种类型的数据库,目前有4 种,分别是A 类型,B 类型,C 类型
以PG 类型。不指定数据库类型时,默认为A 类型。A 的词法分析器与另外三种不一样,在
A 中空字符串会被当作是NULL。所以,当使用A 类型的数据库时,假如上述字符操作函

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
109
数中有空字符串作为参数,会出现没有输出的情况。例如:
gbase=# SELECT translate('12345','123','');
translate
-----------
(1 row)
这是因为内核在调用相应的函数进行处理前,会判断所输入的参数中是否含有NULL,
假如有,则不会调用相应的函数,因此会没有输出。而在PG 模式下,字符串的处理方式与
postgresql 保持一致,因此不会有上述问题产生。

format(formatstr text [, str"any" [, ...] ])
描述:格式化字符串。
返回值类型:text
示例:
gbase=# SELECT format('Hello %s, %1$s', 'World');
format
--------------------
Hello World, World
(1 row)

(SQL 管理 API)
随同 admin() 或 task() 函数,使用 tenant create 参数来创建 tenant 数据库。
语法

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 817 -


元素
描述
关键考虑
database_name
tenant 数据库名。
在数据库服务器的数据库名中必须是唯一
的。该数据库标记为 tenant 数据库。
dbspace
dbspace 的名称。
罗列要在其中存储永久用户数据的一个或多
个 dbspace。用逗号分隔 dbspace 名。每一
dbspace 必须存在且为空。
tenant 数据库必须存储在一个或多个专用
的 dbspace 中。
仅在 tenant 数据库中创建
的对象可存储在该专用的 dbspace 中。
blobspace
blobspace 的名称。
如果 tenant 数据库会包含简单大对象,则
罗列一个或多个 blobspace。用逗号分隔
blobspace 名称。
每一 blobspace 必须存在
且为空。
仅存储在 tenant 数据库表中的简单大对象

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 818 -

元素
描述
关键考虑
可存储在该专用的 blobspace 中。
sbspace
sbspace 的名称。
如果 tenant 数据库会包含智能大对象,则
罗列一个或多个 sbspace。用逗号分隔
sbspace。每一 sbspace 必须存在且为空。
智能大对象可包括 BLOB 或 CLOB 数据,以
及那些过大以至于不适合在行中的表统计信
息。
有些 GBase
8s 特性,
诸如 Enterprise
Replication 和基本文本搜索,需要
sbspace。
仅存储在 tenant 数据库表中的智能大对象
可存储在专用的 sbspace 中。
vpclass
虚拟处理器类的名称。 在其中为 tenant 数据库运行会话线程的
tenant 虚拟处理器类。如果您省略这个属
性,则在 CPU 虚拟处理器上运行会话线程。

vpclass_name 限定为 8 字符。最多可创建
200 个 tenant 虚拟处理器。
如果 vpclass_name 是唯一的,则您可创建
新的 tenant 虚拟处理器类。如果存在
vpclass_name,则该 tenant 数据库与其他
tenant 数据库共享该类。
vps
要运行的虚拟处理器
数。
如果您未包括 num=vps 属性,
则启动一个虚
拟处理器。
tempdbspace
临时 dbspace 的名称。
罗列要在其中存储临时用户数据的一个或多
个临时 dbspace。用逗号分隔临时 dbspace
名称。如果省略这个属性,则临时表存储在
由 DBSPACETEMP 配置参数或环境变量指定
的临时 dbspace 中。
您可通过设置 DBSPACETEMP 环境变量取代
会话的 dbspacetemp 属性。
tempsbspace
临时 sbspace 的名称。
罗列在其中存储临时智能大对象的一个或多
个临时 sbspace。用逗号分隔临时 sbspace
名称。如果您省略这个属性,则临时智能大
对象存储在由 SBSPACETEMP 配置参数指定

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 819 -

元素
描述
关键考虑
的临时 sbspaces 中。
locks
对于没有 DBA 权限的
用户,会话的锁的最大
数。
locks 的值必须为 500 - 2147483647。如果
您省略这个属性,则由
SESSION_LIMIT_LOCKS 配置参数设置锁的数
目。
如果 SESSION_LIMIT_LOCKS 配置参数未
设置,则会话的锁的最大数目为
2147483647。
您可通过设置 IFX_SESSION_LIMIT_LOCKS
环境选项取代会话的 session_limit_locks
属性。
log_mode
日志模式定义:
UNBUFFERED
无缓冲区的数据库日
志记录。
这是缺省值。

ANSI
符合 ANSI 的数据库
日志记录。
BUFFERED
有缓冲区的数据库日
志记录。
NONE
无数据库日志记录。
如果您省略这个属性,则日志记录模式为无
缓冲区的。
case
大小写定义:
INSENSITIVE
不区分大小写。这是
缺省值。
SENSITIVE
区分大小写。
如果您省略这个属性,则数据库不缺分大小
写。
locale
数据库的语言环境。
locale 的值与 DB_LOCALE 环境变量的值相
同。
如果您省略这个属性。
则由 DB_LOCALE 环境
变量的值设置语言环境。
缺省语言环境为 US
English。
catalog_dbspace 存储数据库目录的
dbspace 的名称。必须
是由 dbspace 属性罗
如果您省略这个属性,
则 dbspace 属性列表
中的第一个 dbspace 包含数据库目录。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 820 -

元素
描述
关键考虑
列的 dbspace 的名称。


用法
您必须拥有 DBA 权限或被授予 TENANT 权限来运行这个命令。
随同 admin() 或 task() 函数,运行 tenant create 参数来创建 tenant 数据库。创建该数据
库的用户被授予 DBA 权限。
您可在 sysadmin 数据库中的 tenant 中查看 tenant 数据库属
性。
下列语句创建名为 companyA 的 tenant 数据库:
EXECUTE FUNCTION task('tenant create', 'companyA',
'{dbspace:"companyA_dbs1,companyA_dbs2,companyA_dbs3",
sbspace:"companyA_sbs",
vpclass:"tvp_A,num=6",
dbspacetemp:"companyA_tdbs",
session_limit_locks:"1000",
logmode:"ansi"}'
);
该 tenant 数据库有三个专用的 dbspace、一个专用的 sbspace、六个 tenant 虚拟处理器、
一个专用的临时 dbspace,每一会话限定 1000 个锁,且 logmode 为 ANSI。该 tenant 数
据库没有 blobspace,
在由 SBSPACETEMP 配置参数指定的 sbspace 中存储临时智能大对
象,且区分大小写。

监控集群实时同步任务和历史同步任务信息。