0

我有以下 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,从刚刚插入的行中获取 IDtable1并使用它来插入table2

这是我上面使用的类型:

create or replace
TYPE MyType AS VARRAY(200) OF VARCHAR2(50);

我的问题:如何buzz插入table2?即第二个值。buzz我认为一定很简单,因为我在插入之前已经有了值。

非常感谢。

4

1 回答 1

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。

于 2012-12-02T15:43:01.730 回答