【发布时间】:2013-07-23 04:33:37
【问题描述】:
我有以下收集声明
TYPE T_TABLE1 IS TABLE OF TABLE_1%ROWTYPE INDEX BY BINARY_INTEGER;
tbl1_u T_TABLE1;
tbl1_i T_TABLE1;
此表将继续增长,最后将在 FORALL 循环中用于对 TABLE_1 进行插入或更新。
现在可能存在我想删除某个元素的情况。所以我打算创建一个程序,如果找到该键,它将采用 KEY(唯一)并匹配元素
伪代码
FOR i in tbl1_u.FIST..tbl1_u.LAST
LOOP
if tbl1_u(i).key = key then
tbl1.delete(i);
end if;
END LOOP;
我的问题是,
一旦我删除特定元素,将自动调整集合,即索引 i 将被下一个元素替换,或者该特定索引将保持为空/无效,如果我在全部插入/更新?
我认为我不能将 TABLE_1%ROWTYPE 对象传递给过程,我必须创建记录类型吗?
- 任何其他有关管理公牛删除/更新/插入集合的提示将不胜感激。请记住,我将处理 2 个表,如果我在 table_1 中插入/更新,则意味着我将从 table_2 中删除它,反之亦然。
【问题讨论】:
-
TABLE_1.KEY 是唯一的吗?
-
是的,Table_1.Key 是唯一的
标签: collections plsql oracle11g bulkinsert forall