Menu
企业版 轻量版

文档

匿名块

匿名块(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)

本文档遵循知识共享许可协议CC 4.0 (http://creativecommons.org/Licenses/by/4.0/)。