返回首页

gbase数据、南大通用产品文档:GBase8s程序变量和主变量

更新日期:2024年09月11日

应用程序可在 SQL 语句内使用程序变量。在 SPL 中,当语法允许时,您可在 SQL 语句
中放置程序变量。例如,DELETE 语句可在它的 WHERE 子句中使用程序变量。
下列代码示例展示 SPL 中的程序变量。
CREATE PROCEDURE delete_item (drop_number INT)

DELETE FROM items WHERE order_num = drop_number

在使用嵌入式 SQL 语句的应用程序中,
SQL 语句可引用程序变量的内容。
在嵌入式 SQL
语句中命名的程序变量称为主变量,因为在程序中将该 SQL 语句认作是客人。
下列示例展示 DELETE 语句,
当将它嵌入在 GBase 8s ESQL/C 源程序中时,
它可能出现:
EXEC SQL delete FROM items
WHERE order_num = :onum;
在此程序中,
您看到常规的 DELETE 语句,
如同 修改数据 描述的那样。
当执行该 GBase
8s ESQL/C 程序时,删除 items 表的一行;还可删除多行。
该语句包含一个新的特性。它将 order_num 列与编写为 :onum 的一项相比较,这是主变
量的名称。
SQL API 产品提供一种分隔主变量的名称的方式,
当它们出现在 SQL 语句的上下文中时。
在 GBase 8s ESQL/C 中,
可使用美元符号
($)
或冒号
(:)
来引入主变量。
冒号是符合 ANSI
的格式。
示例语句请求数据库服务器删除其中的订单编号等于名为 :onum 的主变量的当前
内容的那些行。在程序中声明了此数值变量并提前分配了值。
在 GBase 8s ESQL/C 中,
可使用前导的美元符号
($)
或关键字 EXEC SQL 来引入 SQL 语
句。
在前面的示例中说明的语法的差异很小; 重要的是,SQL API 和 SPL 语言使您执行下列
任务:

在源程序中嵌入 SQL 语句,就好像它们是主语言的可执行语句一样。

以使用文字值的方式,在 SQL 表达式中使用程序变量。
如果您有编程经验,则您可立即看到这些可能性。在该示例中,将要删除的订单号码传到
变量 onum 中。那个值来自程序可使用的任何源。可从文件读取它,程序可提示用户输入
它,
或可从数据库读取它。
DELETE 语句本身可为子例程的一部分
(在此情况下,
onum 可
为该子例程的参数);可一次或反复地调用该子例程。
总之,
当您在程序中嵌入 SQL 语句时,
您可对它们应用主语言的所有功能。
您可将 SQL 语
句隐藏在许多接口之下,且可以多种方式优化 SQL 函数。


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

操作步骤
步骤1:执行安装
$ ./gcinstall.py --silent=demo.options
******************************************************************
***************
Thank you for choosing GBase product!
………………
******************************************************************
Do you accept the above licence agreement ([Y,y]/[N,n])? y
******************************************************************
Welcome to install GBase products

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
241
******************************************************************
Environmental Checking on gcluster nodes.
CoordinateHost:


GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
15