web-dev-qa-db-fra.com

Sélectionner dans une table temporaire dans Oracle

J'essaie de faire quelque chose comme ce qui suit,

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

Cela me donne l'erreur suivante,

ERROR at line 1:
ORA-00905: missing keyword

Dans mon exemple réel, la sous-requête (sélectionnez * de l'étudiant) est plus complexe.

Je veux l'utiliser dans une procédure stockée, donc je ne veux pas créer la table elle-même. Je veux juste rendre mon code plus lisible en utilisant une table temporaire.

13
Sait

Alors peut-être que vous devez faire quelque chose comme ceci:

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

Si le temp de la table n'existe pas, vous devez le créer.

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

Vous ne "sélectionnez" pas dans une table temporaire. Si vous souhaitez insérer dans une table temporaire à partir des résultats d'une sélection:

insert into temp
select * from student;
2
OldProgrammer