web-dev-qa-db-ja.com

Oracleの一時テーブルを選択します

私は次のようなことをしようとしています、

select * into temp from (select * from student);

次のエラーが表示されます。

ERROR at line 1:
ORA-00905: missing keyword

私の実際の例では、サブクエリ(学生からの選択*)はより複雑です。

これをストアドプロシージャで使用したいので、テーブル自体を作成したくありません。一時テーブルを使用してコードを読みやすくしたいだけです。

13
Sait

その後、おそらく次のようなことをする必要があります。

declare
   type t_temp_storage is table of student%rowtype;
   my_temp_storage t_temp_storage;
begin
   select * bulk collect into my_temp_storage from student;
   for i in 1..my_temp_storage.count
    loop
    dbms_output.put_line('here I am '||my_temp_storage(i).stuid);
   end loop; 
 end;
9
Martina

テーブルtempが存在しない場合は、作成する必要があります。

 CREATE TABLE temp as
    SELECT * FROM student;
8
kiko tefacka

一時テーブルに「選択」しません。選択の結果から一時テーブルに挿入する場合:

insert into temp
select * from student;
2
OldProgrammer