匿名块
匿名块(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
用于结束块的必需关键字。
示例
--空语句块
openGauss=# BEGIN
NULL;
END;
/
--创建演示表格:
openGauss=# CREATE TABLE table1(id1 INT, id2 INT, id3 INT);
CREATE TABLE
--使用匿名块插入数据:
openGauss=# BEGIN
insert into table1 values(1,2,3);
END;
/
ANONYMOUS BLOCK EXECUTE
--查询插入数据:
openGauss=# select * from table1;
id1 | id2 | id3
-----+-----+-----
1 | 2 | 3
(1 rows)