如何在临时表中插入多行?

时间:2017-05-05 06:09:02

标签: sql oracle plsql oracle-sqldeveloper

我使用变量来存储多行,我想将它插入临时表中。 此查询返回多行

  BEGIN 
    SELECT id INTO 
    temp_var 
    FROM TABLE_1 a,
         TABLE_2 b
    where a.id =b.id; 
     EXCEPTION
      WHEN NO_DATA_FOUND THEN
        temp_var := NULL;
      END; 

我想将变量值插入临时表?

1 个答案:

答案 0 :(得分:1)

假设:当你说"临时表"您的意思是SQL Server用法,它是Oracle中的PL / SQL集合。

此处变量temp_var是一个嵌套表,其复合结构与table_1的投影相匹配。

declare
   type table1_nt is table of table_1%rowtype; 
   temp_var table1_nt;
begin
   select *
   bulk collection into temp_var
   from table_1;
   ....
end;

这为您提供了一个数组中table_1的内容,您可以在PL / SQL中使用它。 Find out more

根据您修改后的要求,使用单个属性非常容易:

declare
   type id_nt is table of varchar2(20);  -- table_1.id%type
   temp_var id_nt;
begin
   select a.id
   bulk collection into temp_var
   from table_1 a,
       join table_2 b
          on a.id =b.id; ;
   ....
end;