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语句后给出的参数集合的键值类型必须为整型,且它的元素类型也必须为整型。