У меня есть следующая декларация для сбора
TYPE T_TABLE1 IS TABLE OF TABLE_1%ROWTYPE INDEX BY BINARY_INTEGER;
tbl1_u T_TABLE1;
tbl1_i T_TABLE1;
Эта таблица будет продолжать расти и в конце будет использоваться в цикле FORALL для вставки или обновления в TABLE_1.
Теперь могут быть случаи, когда я хочу удалить определенный элемент. Итак, я планирую создать процедуру, которая возьмет КЛЮЧ (уникальный) и сопоставит элемент, если этот ключ будет найден.
ПСЕДУО-КОД
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 процедуре, нужно ли мне создавать тип записи?
- Буду признателен за любые другие советы по управлению коллекцией для удаления/обновления/вставки быков. Помните, что я буду иметь дело с двумя таблицами, если я вставляю/обновляю таблицу_1, это означает, что я удаляю ее из таблицы_2 и наоборот.