返回首页

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

更新日期:2024年09月11日



sword GCIBreak (
void *hndlp,
GCIError *errhp
);

中断当前的执行。



GBase 8s GCI 接口使用指南

南大通用数据技术股份有限公司 47

参数
输入
/输出


hndlp
输入
语句或者上下文句柄
errhp
输入
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上

如果执行成功, 返回GCI_SUCCESS,否则返回GCI_ERROR。

这两个方法允许在集合中向前或向后移动,这对于遍历稀疏集合非常有用。
l
如果前边的元素存在,PRIOR返回指定索引的前一个索引,否则返回NULL。如
c.PRIOR(c.FIRST)返回NULL。
l
如果后边的元素存在,NEXT返回指定索引的后一个索引,否则返回NULL。如
c.NEXT(c.LAST)返回NULL。
给定范围索引可以不存在,此时返回全为NULL。例如:
l
可变数组,索引如果超出c.LIMIT,返回null;
l
c.PRIOR(index)返回NULL;
l
c.NEXT(index)返回NULL。
TYPE Arr_Type IS VARRAY(10) OF NUMBER;
v_Numbers Arr_Type := Arr_Type();
BEGIN
v_Numbers.EXTEND(4);

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 84 -

v_Numbers (1) := 10;
v_Numbers (2) := 20;
v_Numbers (3) := 30;
v_Numbers (4) := 40;
DBMS_OUTPUT.PUT_LINE(NVL(v_Numbers.prior (3400), -1));
DBMS_OUTPUT.PUT_LINE(NVL(v_Numbers.next (3400), -1));
END;

-- Result:
-- -1
-- -1
对于字符串做索引的关联数组,prior和next是按照键值的排列的顺序来确认键值的。
CREATE OR REPLACE PROCEDURE P_5_26 AS
TYPE nt_type IS TABLE OF NUMBER;
nt nt_type := nt_type(18, NULL, 36, 45, 54, 63);
BEGIN
nt.DELETE(4);
DBMS_OUTPUT.PUT_LINE('nt(4) was deleted.');
FOR i IN 1..7 LOOP
DBMS_OUTPUT.PUT('nt.PRIOR(' || i || ') = ');
DBMS_OUTPUT.PUT_LINE(NVL(TO_CHAR(nt.PRIOR(i)), 'NULL'));
DBMS_OUTPUT.PUT('nt.NEXT(' || i || ') = ');
DBMS_OUTPUT.PUT_LINE(NVL(TO_CHAR(nt.NEXT(i)), 'NULL'));
END LOOP;
END;

--Result:
--nt(4) was deleted.
--nt.PRIOR(1) = NULL
--nt.NEXT(1) = 2
--nt.PRIOR(2) = 1
--nt.NEXT(2) = 3
--nt.PRIOR(3) = 2
--nt.NEXT(3) = 5
--nt.PRIOR(4) = 3
--nt.NEXT(4) = 5
--nt.PRIOR(5) = 3
--nt.NEXT(5) = 6
--nt.PRIOR(6) = 5
--nt.NEXT(6) = NULL
--nt.PRIOR(7) = 6
--nt.NEXT(7) = NULL

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 85 -


CREATE OR REPLACE PROCEDURE P_5_27 AS
TYPE NumList IS TABLE OF NUMBER;
n NumList := NumList(1, 2, NULL, NULL, 5, NULL, 7, 8, 9, NULL);
idx INTEGER;
BEGIN
DBMS_OUTPUT.PUT_LINE('First to last:');
idx := n.FIRST;
WHILE idx IS NOT NULL LOOP
DBMS_OUTPUT.PUT('n(' || idx || ') = ');
DBMS_OUTPUT.PUT_LINE(NVL(TO_CHAR(n(idx)), 'NULL'));
idx := n.NEXT(idx);
END LOOP;
DBMS_OUTPUT.PUT_LINE('--------------');
DBMS_OUTPUT.PUT_LINE('Last to first:');
idx := n.LAST;
WHILE idx IS NOT NULL LOOP
DBMS_OUTPUT.PUT('n(' || idx || ') = ');
DBMS_OUTPUT.PUT_LINE(NVL(TO_CHAR(n(idx)), 'NULL'));
idx := n.PRIOR(idx);
END LOOP;
END;

--Result:
--First to last:
--n(1) = 1
--n(2) = 2
--n(3) = NULL
--n(4) = NULL
--n(5) = 5
--n(6) = NULL
--n(7) = 7
--n(8) = 8
--n(9) = 9
--n(10) = NULL
--------------
--Last to first:
--n(10) = NULL
--n(9) = 9
--n(8) = 8
--n(7) = 7
--n(6) = NULL
--n(5) = 5

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 86 -

--n(4) = NULL
--n(3) = NULL
--n(2) = 2
--n(1) = 1

功能说明
记录资源管理消费组与用户的关联关系。
表结构说明
表5- 277 表结构信息说明:




consumer_group_id
消费组ID
user_name
用户名称

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1494