返回首页

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

更新日期:2024年09月11日

隐式的与(AND)运算符‘空格’
操作符含义

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
930
所查询内容必须全部被包含。
示例
例如:'hello
world',表示查询同时包含hello 和world 两个单词的内容。

通过在调用例程内构建被调用的例程的名称,
动态的例程名称规范允许您从另一 SPL 例程
执行 SPL 例程。
动态的例程名称规范简化您编写调用另一 SPL 例程的 SPL 例程的方式,
直到运行时才能知道另一例程的名称。
数据库服务器允许您在 EXECUTE PROCEDURE 或
EXECUTE FUNCTION 语句中指定 SPL 变量,而不是 SPL 例程的显式的名称。
在下图中,SPL 过程 company_proc 更新大型的公司销售表,然后,分配名
为 salesperson_proc 的 SPL 变量来保存更新另一较小表的动态地创建的 SPL 过程的名
称,这个较小的表包含个别销售人员的每月销售情况。
图: 动态的例程名称规范。
CREATE PROCEDURE company_proc ( no_of_items INT,
itm_quantity SMALLINT, sale_amount MONEY,
customer VARCHAR(50), sales_person VARCHAR(30) )

DEFINE salesperson_proc VARCHAR(60);

-- 更新公司表
INSERT INTO company_tbl VALUES (no_of_items, itm_quantity,
sale_amount, customer, sales_person);


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

-- 生成变量 salesperson_proc 的过程名称
LET salesperson_proc = sales_person || "." || "tbl" ||
current_month || "_" || current_year || "_proc" ;

-- 执行 salesperson_proc 变量指定的
-- SPL 过程
EXECUTE PROCEDURE salesperson_proc (no_of_items,
itm_quantity, sale_amount, customer)
END PROCEDURE;
在示例中,
过程 company_proc 接受五个参数,
并将它们插入至 company_tbl 内。
然后,
LET
语句使用不同的值和连接运算符 || 来产生要执行的另一 SPL 过程的名称。在 LET 语句
中:
sales_person
传给 company_proc 过程的参数。
current_month
系统日期中的当前月份。
current_year
系统日期中的当前年份。
因此,如果名为 Bill 的销售人员在 1988 年 7 月完成一笔销售,
则 company_proc 在 company_tbl 中插入一记录,并执行 SPL 过程bill.tbl07_1998_proc,更
新包含个别销售人员的每月销售情况的较小的表。

动态例程名称规范的规则
您必须定义保存动态地执行的 SPL 例程的名称的 SPL 变量为 CHAR、VARCHAR、
NCHAR 或 NVARCHAR 类型。您还必须为 SPL 变量提供一个有效的且非 NULL 的名
称。
在可执行动态的例程名称规范标识的 SPL 例程之前,该例程必须存在。如果你将有效的
SPL 例程的名称分配给该 SPL 变量,则 EXECUTE PROCEDURE 或 EXECUTE
FUNCTION 语句执行在该变量中包含其名称的例程,即使存在同名的内建的函数。
在 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句中,您不可使用两个 SPL 变
量来创建形式为 owner.routine_name 的变量名称。
然而,
您可使用包含完全限定的例程名称
的 SPL 变量,例如,bill.proc1。下图同时展示这两种情况。
图: 包含完全限定的例程名称的 SPL 变量。
EXECUTE PROCEDURE owner_variable.proc_variable;
-- 不允许这样

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


LET proc1 = bill.proc1;
EXECUTE PROCEDURE proc1; -- 允许这样

可以使用 onstat -L 命令打印在锁可用列表上的可用锁的数量。
语法:

示例输出
图: onstat -L 输出
num list head available locks
0 10a143b70 19996
1 101010101 200
3 020202020 300
输出描述
num
列表编号
list head
列表的起始地址

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

available locks
该列表上的锁的数量