返回首页

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

更新日期:2024年09月11日

取值:[1, 4294967295]
默认值:16
说明:一次加载任务使用的最大加载机个数(参与数据解析处理的最大节点数)。
用来指定本次加载任务中参与数据解析的处理的最大节点数,取值范围[1,
4294967295],默认值16。。
修改方式:可在配置文件中修改值。适用于global 范围。

您可使用 RAISE EXCEPTION 语句生成您自己的错误,如下图所示。
图: RAISE EXCEPTION 语句。
BEGIN
ON EXCEPTION SET esql, eisam -- 捕获所有错误
IF esql = -206 THEN -- 未找到表
-- 某种恢复
ELSE
RAISE exception esql, eisam; -- 放过该错误

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 334 -
END IF
END EXCEPTION
-- 执行某操作
END
在该示例中,ON EXCEPTION 语句使用两个变量 esql 和 eisam,来保存数据库服务器返回
的错误编号。如果发生错误且如果 SQL 错误编号为 -206,则执行 IF 子句。如果捕获任
何其他 SQL 错误,则将它从此 BEGINEND 块传至前面的示例的最后 BEGINEND 块。

模拟 SQL 错误
您可产生错误来模拟 SQL 错误,如下图所示。如果用户为 pault, 则 SPL 运行如同那个
用户没有 update 权限一样,即使该用户实际确实拥有那个权限。
图: 模拟 SQL 错误。
BEGIN
IF user = 'pault' THEN
RAISE EXCEPTION -273; -- 拒绝 Paul 的 update 权限
END IF
END

使用 RAISE EXCEPTION 来退出嵌套的代码
下图展示您可如何使用 RAISE EXCEPTION 语句来退出深度嵌套的块。
图: RAISE EXCEPTION 语句。
BEGIN
ON EXCEPTION IN (1)
END EXCEPTION WITH RESUME -- do nothing significant (cont)

BEGIN
FOR i IN (1 TO 1000)
FOREACH select ..INTO aa FROM t
IF aa < 0 THEN
RAISE EXCEPTION 1; -- emergency exit
END IF
END FOREACH
END FOR
RETURN 1;
END

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 335 -

--do something; -- emergency exit to
-- this statement.
TRACE 'Negative value returned';
RETURN -10;
END
如果最内层的条件为真(如果 aa 为负),则发生异常,且执行跳至跟在该块的 END 之后
的代码。在此情况下,执行跳至 TRACE 语句。
请记住,BEGINEND 块为单个语句。如果在块中的某处发生错误,且在该块之外捕获,则
当执行恢复时,跳过该块剩余的部分,并从下一语句开始执行。
除非您在该块的某处为此错误设置捕获,否则,将错误条件传回至包含该调用的块,并传
回至包含该块的任何块。如果不存在设置处理该错误的 ON EXCEPTION 语句,则停止该
SPL 例程的执行,为正在执行该 SPL 例程的例程创建一个错误。

PERCENT_RANK()函数
语法
PERCENT_RANK()
OVER([PARTITION
BY
col_name1,col_name2,…]
ORDER BY
col_name1 [ASC/DESC], col_name2 [ASC/DESC],…)
功能描述
计算由ORDER BY 子句定义,在返回的查询中某一行相对于其它行的(小数)
位置。它返回介于0 和1 之间的小数值。
该函数的使用场景及使用限制与RANK()函数完全相同。