2012-07-13 23 views
15

In Oracle, copio i dati da un backup a una nuova tabella, non funziona.Oracle copia dati su un'altra tabella

qual è la sintassi corretta?

Grazie

select CODE, MESSAGE into EXCEPTION_CODES (CODE, MESSAGE) 
from Exception_code_tmp 

l'errore è

**SQL Error: ORA-00905: missing keyword 
00905. 00000 - "missing keyword"** 

risposta

31

Avete bisogno di un INSERT ... SELECT

INSERT INTO exception_codes(code, message) 
    SELECT code, message 
    FROM exception_code_tmp 
4
insert into EXCEPTION_CODES (CODE, MESSAGE) 
select CODE, MESSAGE from Exception_code_tmp 
+1

grazie. abbiamo "selezionare .. dentro" nell'Oracolo? – user595234

+1

non sembra tale in base a [questo post] (http://stackoverflow.com/questions/2250196/select-into-using-oracle) –

22

Se si desidera creare tabella con i dati. In primo luogo creare la tabella:

create table new_table as (select * from old_table); 

e quindi inserire

insert into new_table (select * from old_table); 

Se si desidera creare la tabella senza dati. È possibile utilizzare:

create table new_table as (select * from old_table where 1=0); 
+9

"insert into" è ridondante poiché "create table as" creerà tabella e inserire tutti i dati. – thoredge

7

Creazione di una tabella e copiare i dati in un unico comando:

create table T_NEW as 
    select * from T; 

* Ciò non copia PKS, FKS, trigger, ecc

+0

Copie i vincoli sulla tabella, come non null. Grazie :) – Shiva

Problemi correlati