我有以下Oracle程序(我已经详细介绍了一些问题,使问题更加通用:
create or replace
procedure Insert_Row (foo IN VARCHAR2,
buzz in VARCHAR2,
t_in MyType)
is
l_cur_id number;
begin
insert into table1 (foo,buzz)
returning bar into l_cur_id;
BEGIN
FOR i IN 1..t_in.count LOOP
insert into table2 (bar, something)
values(l_cur_id,t_in(i));
commit;
END LOOP;
end;
end;
所有这一切都是在table1
中插入一行,从刚刚插入table1
的行中获取ID并使用它插入table2
。
这是我上面使用的类型:
create or replace
TYPE MyType AS VARRAY(200) OF VARCHAR2(50);
我的问题:如何将buzz
插入table2
?即第二个值。我认为必须简单,因为在插入之前我已经是buzz
的值。
非常感谢。
答案 0 :(得分:0)
好的,我所做的就是:
更改自:
BEGIN
FOR i IN 1..t_in.count LOOP
insert into table2 (bar, something)
values(l_cur_id,t_in(i));
commit;
END LOOP;
到此:
BEGIN
FOR i IN 1..t_in.count LOOP
insert into table2 (bar, something,buzz)
values(l_cur_id,t_in(i),buzz);
commit;
END LOOP;
如此明显:-S。