返回首页

gbase数据、南大通用产品文档:GBase8s隐式的和显式的语句块

更新日期:2024年09月11日

在 SPL 例程中,
隐式的语句块从 CREATE 语句的结尾扩展到 END 语句的开头。
您还可
定义显式的语句块,它以 BEGIN 语句开头并以 END 语句结尾,如下图所示。
图: 显式的语句块。
BEGIN
DEFINE distance INT;

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

LET distance = 2;
END
显式的语句块允许您定义仅在语句块内有效的变量或处理。例如,您可定义或重新定义变
量,或以不同的方式处理异常,仅对于显式的语句块的作用域。
下图中的 SPL 函数有一个显式的语句块,它重新定义在隐式的块中定义的变量。
图: 重新定义在隐式的块中定义的变量的显式的语句块。
CREATE FUNCTION block_demo()
RETURNING INT;
DEFINE distance INT;
LET distance = 37;
BEGIN
DEFINE distance INT;
LET distance = 2;
END
RETURN distance;

END FUNCTION;
在此示例中,
隐式的语句块定义变量 distance 并赋值 37。
显式的语句块定义名为 distance 的
不同的变量,
并赋值 2。
然而,
RETURN 语句返回存储在第一个 distance 变量中的值,
即 37。

安装步骤
如使用GBase UP+全文检索功能,需要先安装集群产品,再安装全文功能包。集群
产品的具体安装步骤请参考本文档的第三章节3.3.4 安装GBase UP 集群部分。
全文检索功能的安装步骤请参考如下内容:
步骤1
如果已经成功安装集群产品。
如安装包为:GBaseUP-License-9.5.2.20-redhat7.3-x86_64.tar.bz2
步骤2
继续安装全文检索功能。
安装包为:GBaseUP-License-fulltext-9.5.2.20-redhat7.3-x86_64.tar.bz2。
说明

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 919
集群安装完成后,需要完成加组操作,才能继续全文检索功能的安装。
步骤3
执行tar xfj 命令解压缩安装包后。
执行安装命令:
# ./gcinstall_fulltext.py --rootPwd=111111
注意
gcinstall_fulltext.py 命令可选参数:passwordInputMode
参数含义:指定密码获取的方式,通过不同的参数实现不同的获取方式。若指定该参
数,则demo.options 中的密码不必再修改。
默认值: file
取值范围:[file,pwdsame,pwddiff]

file : 表示从文件获取,
和原有的方式一致,
该方式下,
文件中的密码是明文的;


pwdsame:表示从终端由用户输入密码,
并且所有节点的密码一致情况下使用该
参数,对于不同用户密码只输入一次,适用于所有节点都用这个密码;

pwddiff: 表示从终端由用户输入密码,
并且节点间的密码不一致情况下使用该
参数,对于不同用户密码每个节点分别输入一次,适用于不同节点使用不同的
密码;
步骤4
安装成功后,可执行初始化等步骤,或直接使用全文检索功能。

sbspace(SQL 管理 API)
随同 admin() 或 task() 函数,使用 create sbspace 参数来创建 sbspace。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 727 -
语法

元素
描述
关键考虑
initial_chunk_size
新的临时 sbspace 的初始 chunk 大小,
以 KB 为单位。
请参阅 admin() 和
task() 参数大小规范。

offset
磁盘分区内或设备内,达到新的临时
sbspace 的初始 chunk 的偏移量,以 KB
为单位。

path_name
临时 sbspace 的初始 chunk 的磁盘分区
或无缓冲的设备。

tempsbspace
要创建的临时 sbspace 名。


用法
使用 create with_check sbspace 参数来检查指定的路径名,如果路径不存在,则返回错
误。
这个函数等同于带有 -t 选项的 onspaces -c -S 命令,创建临时 sbspace。
示例
下列示例创建大小为 20 MB、偏移量为 0 的临时 sbspace:
EXECUTE FUNCTION task ("create tempsbspace","tempsbspace3",
"$GBASEDBTDIR/WORK/tempsbspace3","20 M","0");