返回首页

gbase数据、南大通用产品文档:GBase8s处理参数化的用户定义的例程

更新日期:2024年09月11日

本部分描述如何处理带有系统描述符区域的参数化的用户定义的例程。下
列语句执行用户定义的例程:
EXECUTE FUNCTION 语句执行用户定义的函数(外部的和 SPL)。
EXECUTE PROCEDURE 语句执行用户定义的过程(外部的和 SPL)。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 545 -


如果准备好的 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 有指定作为未知
数目和水力学的输入参数的参数,
则您的 GBase 8s ESQL/C 程序可使用系统描述符区域来
定义输入参数。
执行参数化的函数
您处理用户定义的函数的输入参数的方式,
与处理 SELECT 语句的 WHERE 子句中
的输入参数的方式一样,如下:
执行非游标函数的方式,与执行单个 SELECT 语句的方式一样。
如果您在此时知道您编写的动态用户定义的函数的程序总是只返回一行,则您可使用
EXECUTE...USING SQL DESCRIPTOR...INTO 语句来提供来自系统描述符区域的参数值,
并执行该函数。

执行游标函数的方式,与执行返回一行或多行的 SELECT 语句的方式一样。
如果您在此时不确定您编写的动态用户定义的函数的程序是否只返回一行,则请定义
函数游标,并使用 OPEN...USING SQL DESCRIPTOR 语句来提供来自系统描述符区域的
参数值。

执行这些 EXECUTE FUNCTION 语句与执行 SELECT 语句执行唯一的区别在于,
您为非游标函数准备 EXECUTE FUNCTION 语句,而不是 SELECT 语句。
执行参数化的过程
要执行参数化的用户定义的过程,您可使用 EXECUTE...USING SQL DESCRIPTOR
语句来提供来自系统描述符区域的参数值,并执行该过程。您处理用户定义的过程输入参
数的方式,
与处理非游标函数中的输入参数的方式相同。
执行 EXECUTE PROCEDURE 语
句与执行 EXECUTE FUNCTION 语句(对于非游标函数)的唯一区别在于,您不需要为
用户定义个过程指定 EXECUTE...USING SQL DESCRIPTOR 语句的 INTO 子句。

使用本功能,您可以在用户数据库下新建表。
在“数据库导航”中,右键单击数据库下的“表”节点,在弹出菜单中选
择“新建表”菜单项,如下图所示:

GBaseDataStudio 管理工具手册
- 286 -
南大通用数据技术股份有限公司
图5- 679 新建表
选择新建表菜单项后,系统将打开表设计器,如下图所示:
图5- 680Express 引擎表属性
输入表属性,填写表的属性信息;

表名:表的名称。

描述:表的注释。

字符集:有utf8 和GBK 两个选项,默认utf8.

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 287 -
图5- 681 列属性
输入列属性,定义表的字段,选择数据类型,定义数据类型的长度等等。
单击“确定”按钮,您会发现“数据库导航”中已经显示出您所创建的表。

若缩容后该节点不再需要可以彻底从集群中移除该节点并卸载该节点,
也可以一直
作为freenode 待以后使用。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
273
从集群中彻底移除并卸载缩容掉的节点步骤如下:
操作步骤
步骤1:确定gcRm_vc1.xml 文件内容为待卸载节点IP:
$ cat gcRm_vc1.xml






步骤2:将待卸载IP 从集群中移除
$ gcadmin rmnodes gcRm_vc1.xml
gcadmin remove nodes ...
flush statemachine success
gcadmin rmnodes from cluster success
步骤3:修改卸载配置文件demoUn.options
1)
拷贝demo.options 文件为demoUn.options,修改demoUn.options 如下;
2)
设置dataHost 参数为要卸载的节点的IP;
3)
注释coordinateHost 和coordinateHostNodeID 参数;
4)
修改existCoordinateHost 参数为缩容后保留的Coordinator 节点的IP;
5)
修改existDataHost 参数为缩容后保留的所有data 节点的IP。
$ cat demoUn.options
installPrefix= /opt
#coordinateHost =
#coordinateHostNodeID =
dataHost = 172.168.83.16
existCoordinateHost =172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.15
existDataHost
=172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.14,172.168.83.15
existGcwareHost=172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.15
#gcwareHost =
#gcwareHostNodeID =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbasedba'
rootPwd = '111111'
#rootPwdFile = rootPwd.json
#characterSet = utf8
#sshPort = 10022
步骤4:到所有需要卸载的数据节点上去停止集群服务

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
274
$ gcluster_services all stop
步骤5:执行卸载。
$ ./unInstall.py --silent=demoUn.options
These GCluster nodes will be uninstalled.
CoordinateHost:
DataHost: