返回首页

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

更新日期:2024年09月11日

GCIErrorGet
函数原型:
sword
GCIErrorGet(
dvoid *hndlp,
ub4 recordno,
GCIText *sqlstate,
sb4 *errcodep,
GCIText *bufp,
ub4 bufsiz,
ub4 type
);
功能描述:
获取GCI 操作失败的错误信息
参数说明:
hndlp(输入)
错误信息句柄的指针
recordno(输入)
保留参数,目前不使用(仅用于和Oracle 保持兼容)
sqlstate(输出)
错误的状态码
errcodep(输出)
错误码
bufp(输出)
错误的描述信息



bufsiz(输入)
bufp 所指缓冲区的大小
type(输入)
支持GCI_HTYPE_ERROR 和GCI_HTYPE_ENV
返回值:
如果执行成功,则返回GCI_SUCCESS,否则返回GCI_ERROR

MULTISET 数据类型是存储无序集的集合类型,它能包含重复的元素值。
MULTISET 中的元素没有顺序位置。也就是说,在 MULTISET 中不存在第一元素、第二
元素或第三元素的概念。
MULTISET 中的所有元素都具有相同的元素类型。要指定元素类型,使用以下语法:
MULTISET(element_type NOT NULL)
集合的 element_type 可以是下列任何类型:
任何内置类型(SERIAL、SERIAL8、BIGSERIAL、BYTE 和 TEXT 除外)
未命名或命名 ROW 类型
另一个集合类型或不透明类型
除非另外指示,否则可以在使用任何其他数据类型的地方使用 MULTISET。例如:
在用来搜索匹配的 MULTISET 值的 SELECT 语句 WHERE 子句中的 IN 谓词后面
作为用来确定 LIST 列中的元素数目的 CARDINALITY 或 mi_collection_card( )
函数的自变量
不能将 MULTISET 值用作聚集函数(例如,AVG、MAX、MIN 或 SUM)的自变量。
必须对 MULTISET 元素指定 NOT NULL 约束。其他约束对 MULTISET 列无效。有关
MULTISET 集合类型的更多信息,请参阅 GBase 8s SQL 指南:语法。
如果两个 multiset 数据值具有相同的元素,那么它们相等,即使各元素在集中的位
置不同。下列两个示例都是 multiset 值但不相等:
MULTISET {"blue", "green", "yellow"}
MULTISET {"blue", "green", "yellow", "blue"}
下列 multiset 值是相等的:
MULTISET {"blue", "green", "blue", "yellow"}
MULTISET {"blue", "green", "yellow", "blue"}
可以将相同表的不超过 97 列声明为 MULTISET 数据类型。
(同一限制适用于 SET 和
LIST 集合类型。)
命名 ROW
请参阅 ROW 数据类型,已命名。

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

功能描述
创建一个新的外部数据源对象,该对象用于定义GBase 8c 要连接的目标库信息。
注意事项

Data Source 名称在数据库中需唯一,遵循标识符命名规范,长度限制为63 字节,过长
则会被截断。

只有系统管理员或初始用户才有权限创建Data Source 对象。且创建该对象的用户为其
默认属主。

当在OPTIONS 中出现password 选项时,需要保证GBase 8c 每个节点的
$GAUSSHOME/bin 目录下存在datasource.key.cipher 和datasource.key.rand 文件,如果
不存在这两个文件,
请使用gs_guc 工具生成并使用gs_ssh 工具发布到GBase 8c 每个节
点的$GAUSSHOME/bin 目录下。
语法格式

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
863
CREATE DATA SOURCE src_name
[TYPE 'type_str']
[VERSION {'version_str' | NULL}]
[OPTIONS (optname 'optvalue' [, ...])];
参数说明

src_name
新建Data Source 对象的名称,需在数据库内部唯一。
取值范围:字符串,要符标识符的命名规范。

TYPE
新建Data Source 对象的类型,可缺省。
取值范围:空串或非空字符串。

VERSION
新建Data Source 对象的版本号,可缺省或NULL 值。
取值范围:空串或非空字符串或NULL。

OPTIONS
Data Source 对象的选项字段,创建时可省略,如若指定,其关键字如下:

optname
选项名称。
取值范围:dsn、username、password、encoding。不区分大小写。
dsn 对应odbc 配置文件中的DSN。
username/password 对应连接目标库的用户名和密码。
GBase 8c 在后台会对用户输入的username/password 加密以保证安全性。该加密所需密
钥文件需要使用gs_guc 工具生成并使用gs_ssh 工具发布到GBase 8c 每个节点的

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
864
$GAUSSHOME/bin 目录下。username/password 不应当包含'encryptOpt'前缀,否则会被认为
是加密后的密文。
encoding 表示与目标库交互的字符串编码方式(含发送的SQL 语句和返回的字符类型
数据)
,此处创建对象时不检查encoding 取值的合法性,能否正确编解码取决于用户提供的
编码方式是否在数据库本身支持的字符编码范围内。

optvalue
选项值。
取值范围:空或者非空字符串。
示例
--创建一个空的Data Source 对象,不含任何信息。
gbase=#CREATE DATA SOURCE ds_test1;
--创建一个Data Source 对象,含TYPE 信息,VERSION 为NULL。
gbase=#CREATE DATA SOURCE ds_test2 TYPE 'MPPDB' VERSION NULL;
--创建一个Data Source 对象,仅含OPTIONS。
gbase=# CREATE DATA SOURCE ds_test3 OPTIONS (dsn 'openGauss', encoding 'utf8');
--创建一个Data Source 对象,含TYPE, VERSION, OPTIONS。
gbase=#CREATE DATA SOURCE ds_test4 TYPE 'unknown' VERSION '11.2.3' OPTIONS (dsn
'openGauss', username 'userid', password 'pwd@123456', encoding '');
--删除Data Source 对象。
gbase=#DROP DATA SOURCE ds_test1;
gbase=#DROP DATA SOURCE ds_test2;
gbase=#DROP DATA SOURCE ds_test3;

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
865
gbase=#DROP DATA SOURCE ds_test4;