oracle forall语法
时间: 2023-08-23 09:04:35 浏览: 94
Oracle FORALL 语法用于批量操作,可以在单个 SQL 语句中处理多个行。以下是 Oracle FORALL 语法的基本结构:
```
FORALL index IN lower_bound..upper_bound
statement_block;
```
其中,index 是循环变量,lower_bound 和 upper_bound 是循环变量的下限和上限。statement_block 包含要重复执行的 SQL 语句。
以下是一个示例:
```
DECLARE
TYPE dept_type IS TABLE OF departments.department_id%TYPE
INDEX BY PLS_INTEGER;
l_dept_ids dept_type;
BEGIN
SELECT department_id BULK COLLECT INTO l_dept_ids FROM departments;
FORALL i IN 1..l_dept_ids.COUNT
UPDATE employees SET department_id = l_dept_ids(i) WHERE department_id = 10;
COMMIT;
END;
```
在此示例中,首先定义了一个类型为 `dept_type` 的表类型,并使用 `BULK COLLECT` 将 `departments` 表中的 `department_id` 收集到 `l_dept_ids` 变量中。然后,使用 `FORALL` 语法将所有 `department_id` 为 10 的员工的部门 ID 更新为 `l_dept_ids` 中的相应值。最后,使用 `COMMIT` 语句提交更改。
阅读全文