Я использую SQL * Plus 9.2 на предприятии Oracle 10g. Я создал несколько сценариев, которые выполняют базовые вставки с использованием параметров, которые я передаю через командную строку. Казалось логичным, что я должен быть в состоянии запустить несколько вставок в цикле. Поэтому я попробовал следующее:
--begin
DECLARE
TYPE va_orgs IS TABLE OF nbr.lien_item.lien_item_name%type;
org va_orgs := va_orgs('RTA','RTB','RTE','RTI','RTM','RTT');
BEGIN
FOR i in org.FIRST .. org.LAST
LOOP
INSERT INTO nbr.lien_item (lien_item_sid, excel_row, include_in_calcs, indent, header_level, sort_order, unit, lien_item_status, lien_item_name) VALUES (nbr.lien_item_seq.nextval, 0, 'Y', 1, 0, 1, 'FTE', 'A', 'org(i)');
COMMIT;
END LOOP;
END;
/
--end
Когда я запускаю скрипт, я получаю сообщение, что PL / SQL успешно завершен. Я попытался отладить и использовать dbms_output
, чтобы отобразить значения org(i)
. Все выглядит хорошо. Но строки никогда не вводятся в базу данных. Как только я сделаю выбор, новых строк не будет. Есть ли какая-то хитрость в зацикливании и выполнении вставок?
(я также пробовал IS VARRAY(6) OF
вместо IS TABLE OF
. Тот же не результат)