2012-07-13 22 views
15

En Oracle, copio datos de una copia de seguridad en una nueva tabla, no funciona.Copiar datos de Oracle a otra tabla

¿cuál es la sintaxis correcta?

Gracias

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

el error es

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

Respuesta

31

Es necesario 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

gracias. ¿Tenemos "seleccionar ... en" en el Oracle? – user595234

+1

no parece tan de acuerdo con [esta publicación] (http://stackoverflow.com/questions/2250196/select-into-using-oracle) –

22

Si desea crear tabla con datos. En primer lugar crear la tabla:

create table new_table as (select * from old_table); 

y luego insertar

insert into new_table (select * from old_table); 

Si desea crear tabla sin datos. Se puede utilizar:

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

La 'inserción en' es redundante ya que 'create table as' creará tabla e inserte todos los datos. – thoredge

7

Creación de una tabla y la copia de los datos en un solo comando:

create table T_NEW as 
    select * from T; 

* Esto le no copia PKs, FKS, disparadores, etc.

+0

Copia restricciones en la tabla, como no nulo. Gracias :) – Shiva

Cuestiones relacionadas