匿名块

匿名块(Anonymous Block)是存储过程的字块之一,没有名称。一般用于不频繁执行的脚本或不重复进行的活动。

语法

匿名块的语法参见图1。

图 1 anonymous_block::= 匿名块 - 图1

对以上语法图的解释如下:

  • 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿,以一个分号结束。输入“/”按回车执行它。

匿名块 - 图2 须知: 最后的结束符“/”必须独占一行,不能直接跟在END后面。 - 声明部分包括变量定义、类型、游标定义等。 - 最简单的匿名块不执行任何命令。但一定要在任意实施块里至少有一个语句,甚至是一个NULL语句。

参数说明

  • DECLARE

用于开始 DECLARE 语句的可选关键字,此关键字可用于声明数据类型、变量或游标。此关键字的使用取决于此块所在的上下文。 - declaration_statements

指定作用域限定于块的数据类型、变量、游标、异常或过程声明。每个声明都必须以分号终止。 - BEGIN

用于引入可执行节的必需关键字,该节可以包含一个或多个 SQL 或 PL/SQL 语句。BEGIN-END 块可以包含嵌套的 BEGIN-END 块。 - execution_statements

指定 PL/SQL 或 SQL 语句。每个语句都必须以分号终止。 - END

用于结束块的必需关键字。

示例

1. --空语句块
2. openGauss=# BEGIN
3. NULL;
4. END;
5. /

7. --创建演示表格:
8. openGauss=# CREATE TABLE table1(id1 INT, id2 INT, id3 INT);
9. CREATE TABLE

11. --使用匿名块插入数据:
12. openGauss=# BEGIN
13. insert into table1 values(1,2,3);
14. END;
15. /
16. ANONYMOUS BLOCK EXECUTE

18. --查询插入数据:
19. openGauss=# select * from table1;
20. id1 | id2 | id3
21. -----+-----+-----
22. 1 |   2 |   3
23. (1 rows)