我有以下收集声明
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;
我的问题是,
一旦我删除特定元素,集合会自动调整,即索引我将被下一个元素替换,或者该特定索引将保持为空/无效,如果我在 FORALL INSERT/UPDATE 中使用它可能会给我异常?
我不认为我可以将 TABLE_1%ROWTYPE 对象传递给一个过程,我必须创建一个记录类型吗?
- 有关管理公牛删除/更新/插入集合的任何其他提示将不胜感激。记住,我将处理 2 个表,如果我在 table_1 中插入/更新,那么这意味着我正在从 table_2 中删除它,反之亦然。