我在 Oracle 10g 企业版上使用 SQL*Plus 9.2。我创建了一些使用通过命令提示符传递的参数进行基本插入的脚本。我应该能够在一个循环中运行一堆插入似乎是合乎逻辑的。所以我尝试了以下方法:
--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
。同样的非结果)