从INSERT返回多个值并将两者插入另一个表

时间:2012-12-02 15:39:08

标签: sql oracle stored-procedures oracle11g

我有以下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的值。

非常感谢。

1 个答案:

答案 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。