
# BEGIN
#### 功能描述
BEGIN可以用于开始一个匿名块，也可以用于开始一个事务。本节描述用BEGIN开始匿名块的语法，以BEGIN开始事务的语法见[START TRANSACTION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0504.html#ZH-CN_TOPIC_0000002186016274)。
匿名块是能够动态地创建和执行过程代码的结构，而不需要以持久化的方式将代码作为数据库对象储存在数据库中。
#### 注意事项
无。
#### 语法格式
- 开启匿名块
  ```
  [DECLARE [declare_statements]] 
  BEGIN
  execution_statements  
  END;
  /
  ```
  
- 开启事务
  ```
  BEGIN [ WORK | TRANSACTION ]
    [ 
      { 
         ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE | REPEATABLE READ }
         | { READ WRITE | READ ONLY }
        } [, ...] 
    ];
  ```
  
 
#### 参数说明
- **declare_statements**
  声明变量，包括变量名和变量类型，如"sales_cnt int"。
  
- **execution_statements**
  匿名块中要执行的语句。
  取值范围：DML操作(数据操纵操作：select、insert、delete、update)或系统表中已注册的函数名称。
  
 
#### 示例
```
--使用匿名块输出字符串。
openGauss=# BEGIN
dbe_output.print_line('Hello');
END;
/
```
#### 相关链接
[START TRANSACTION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0504.html#ZH-CN_TOPIC_0000002186016274)
