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

对以上语法图的解释如下:
- 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿,以一个分号结束。输入“/”按回车执行它。
须知: 最后的结束符“/”必须独占一行,不能直接跟在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)
