Oracle FORALL 语法
时间: 2023-12-21 09:55:28 浏览: 29
Oracle FORALL 语法是用于执行一组 SQL 语句的 PL/SQL 语句。FORALL 语句可以用于在一个事务中批量处理多行数据,以提高性能。
FORALL 语法如下:
```
FORALL index IN lower_bound..upper_bound
statement;
```
其中:
- `index`:循环计数器变量,可以是任何有效的 PL/SQL 变量名。
- `lower_bound` 和 `upper_bound`:循环计数器变量的起始值和结束值。
- `statement`:要执行的 SQL 语句,可以是 INSERT、UPDATE 或 DELETE 语句。
例如,以下示例使用 FORALL 语句批量更新表中的多行数据:
```
DECLARE
TYPE emp_id_list IS TABLE OF employees.employee_id%TYPE;
emp_ids emp_id_list := emp_id_list(100, 101, 102);
BEGIN
FORALL i IN emp_ids.FIRST..emp_ids.LAST
UPDATE employees SET salary = salary * 1.1 WHERE employee_id = emp_ids(i);
END;
```
该代码段定义一个 `emp_id_list` 类型的 PL/SQL 表,包含 `employee_id` 数据类型的值。然后将 `emp_ids` 初始化为包含三个 `employee_id` 值的表,最后使用 FORALL 语句批量更新表中的数据。