2017-05-05 14 views
0

私は変数を使用して複数の行を格納していて、それを一時テーブルに挿入します。 このクエリは、私は、一時テーブルに変数の値を挿入したい複数の行一時テーブルに複数の行を挿入するにはどうすればよいですか?

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; 

を返しますか?

+0

あなたがこれまでに試してみましたか? – Nitish

+0

なし実現可能かどうかわからない – Potatooo

+0

「temp_var」のタイプは何ですか? – Nitish

答えて

1

想定:「一時表」とは、OracleのPL/SQLコレクションであるSQL Serverの使用を意味します。

ここで、変数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; 

これは、あなたがPL/SQLで作業することができ、アレイ内のtable_1の内容を提供します。 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; 
+0

table_1だけでなく、複数のテーブルの値を選択します。私はグローバル一時テーブルを意味しました – Potatooo

+3

**あなたの質問をより鮮明に説明するために**あなたの質問を編集してください – APC

関連する問題