返回首页

gbase数据、南大通用产品文档:GBase8s执行表达式中的例程

更新日期:2024年09月11日

正如内建的函数那样,您可通过在 SQL 和 SPL 语句中的表达式,使用 SPL 例程来执行
SPL 例程(以及来自 SPL 例程的外部例程)。表达式中使用的例程通常为函数,因为它
将值返回至语句的剩余部分。
例如,您可能通过将返回值分配给变量的 LET 语句来执行函数。下图中的语句执行相同
的任务。它们执行 SPL 例程内的外部函数,并将返回值分配给变量 a。
图: 执行 SPL 例程内的外部函数。
LET a = area( rectv.length, rectv.width );

CALL area( rectv.length, rectv.width ) RETURNING a;
-- 这些语句是等同的
您还可从 SQL 语句执行 SPL 例程,
如下图所示。
假设您编写 SPL 函数 increase_by_pct,
对给定的价格增加给定的百分比。在您编写 SPL 例程之后,在任何其他 SPL 例程中都可
使用它。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 320 -
图: 从 SQL 语句执行 SPL 例程。
CREATE FUNCTION raise_price ( num INT )
RETURNING DECIMAL;

DEFINE p DECIMAL;

SELECT increase_by_pct(price, 20) INTO p
FROM inventory WHERE prod_num = num;

RETURN p;

END FUNCTION;
该示例选择 inventory 的指定的行的 price 列,
并使用该值作为 SPL 函数 increase_by_pct 的
参数。然后,该函数返回新的 price 值,在变量中增加 20%。

操作步骤
步骤1:修改demo.options 文件:
1)
设置coordinateHost 为要安装的管理节点的IP;
2)
设置coordinateHostNodeID 为要安装的管理节点设置的ID,与coordinateHost
节点设置的一一对应,且不重复的整数值;
3)
设置dataHost 参数为要安装的节点的IP;
4)
修改existCoordinateHost 参数为已存在的Coordinator 节点的IP;
5)
修改existDataHost 参数为已存在的所有data 节点的IP。
修改后的demo.options 参考如下:
$ cat demo.options
installPrefix= /opt
coordinateHost =172.168.83.16
coordinateHostNodeID = 16
dataHost =172.168.83.16

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
263
existCoordinateHost =172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.14
existDataHost =172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.15
existGcwareHost=172.168.83.11,172.168.83.12,172.168.83.13
#gcwareHost =
#gcwareHostNodeID =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbasedba'
rootPwd = '111111'
#rootPwdFile = rootPwd.json

取值:[0|1]
默认值:0
说明:
该参数仅用于节点替换场景下。

GBase 8a MPP Cluster 参数手册
文档版本2022-06-07
南大通用数据技术股份有限公司
42
值为1 时,节点替换过程中rebalance 忽略镜像表,不对镜像表操作。
值为0 时,rebalance 同时操作主表和镜像表。默认值为0。
修改方式:可使用set 语句修改值,仅用于global 范围。