FORALL语句概述

FORALL语句可以对INSERT、UPDATE和DELETE语句进行批量执行。

语法:

forall_statement ::=

bounds_clause ::=

bounds_clause_1 ::=

bounds_clause_2 ::=

bounds_clause_3 ::=

说明:

index_name

是循环变量,此处可以为任意的一个变量,它自动由PL/SQL隐式声明为PLS_INTEGER类型,并被用做集合类型的键值。

dml_statement

是一条单独的DML语句,可以是一个插入(INSERT)、更新(UPDATE)、删除(DELETE)操作。

lower_bound .. upper_bound

代表键值的上下限。两者可以为表达式但结果必须可转换为整数。

INDICES OF collection [BETWEEN lower_bound AND upper_bound]

此语法分支可用于绑定稀疏集合,根据关键字INDICES OF后给出的参数集合中的有效键值来设定循环变量的值,此参数集合中的键值可以不连续。当需要指定参数集合的有效键值范围时,可以使用BETWEEN..AND语句,其中上下限语义相同。

如果INDICES OF语句后给出的参数集合是索引表类型,则它的键值类型必须为整型。

VALUES OF index_collection

此语法分支可用于绑定稀疏集合,根据VALUES OF语句后给出的参数集合中的元素值来设定循环变量,此集合的键值也可以不连续。

VALUES OF语句后给出的参数集合的键值类型必须为整型,且它的元素类型也必须为整型。