oracle pl/sql FORALL 语句
Posted
技术标签:
【中文标题】oracle pl/sql FORALL 语句【英文标题】:oracle pl/sql FORALL statement 【发布时间】:2014-07-27 19:49:24 【问题描述】:我对这个程序感到困惑,请逐行解释任何一个,并且必须在 forall 循环中我的变量如何在那里迭代
DECLARE
TYPE mysubs_type IS TABLE OF pls_integer INDEX BY pls_integer;
TYPE mylist_type IS TABLE OF pls_integer INDEX BY pls_integer;
mysubs mylist_type;
mylist mylist_type;
BEGIN
mylist(2) := 2;
mysubs(10) := 2; -- point to mylist(2)
mylist(3) := 3;
mysubs(200) := 3; -- point to mylist(3)
mylist(6) := 6;
mysubs(30) := 6; -- point to mylist(6)
mysubs(40) := 3; -- point to mylist(3)
FORALL i IN VALUES OF mysubs
INSERT INTO mynum_table(my_list) VALUES(mylist(i));
END;
【问题讨论】:
何不直接开始阅读手册:docs.oracle.com/cd/E11882_01/appdev.112/e25519/… 【参考方案1】:I
遍历bounds_clause
: IN VALUES OF
表示i
是mysubs
的元素,并将以非连续的方式迭代集合mysubs
。在这里,在这种情况下 4 次。尊重mysubs
的索引:
FORALL 总是插入块:
2
6
3
3
【讨论】:
以上是关于oracle pl/sql FORALL 语句的主要内容,如果未能解决你的问题,请参考以下文章
Oracle PL/SQL 如何输出在 FORALL 语句中进行了多少次插入
Oracle pl/sql forall:如何计算表空间已满(1654)错误的实际插入行数