Oracle – insertar registros desde otra tabla (insert into select)

Oracle SQL insertar registros de una tabla en otra
¿Cómo insertar registros en Oracle de una tabla en otra? ¿Cómo copiar los datos de una tabla de Oracle a otra tabla? ¿Cómo hacer un insert into select? ¡La forma más sencilla es hacer un INSERT INTO, y en lugar de poner los VALUES de la sentencia, poner una SELECT con estructura de datos coincidentes.
Sintaxis:
INSERT INTO tabla-a-anyadir
(SELECT campo1, campo2 FROM tabla-de-donde-coger)
Por ejemplo, teniendo las tablas:
TABLA: usuarios
CAMPOS: id_usuario, nombre_usuario, apellido_usuario
Si quisiéramos añadir valores de  la tabla:
TABLA: clientes
CAMPOS:  id_cliente, nombre_cliente, apellido_cliente, id_pais
Imaginaos que queremos añadir a la tabla usuarios todos los clientes que sean del país 34  (España). Sintaxis:
INSERT INTO usuarios
(SELECT id_cliente, nombre_cliente, apellido_cliente FROM clientes WHERE id_pais=34)
Esta consulta es sólo un ejemplo, y podría haber problemas de violación de PK en el caso de que id_cliente a importar a Usuarios coincidieran con valores ya existentes en id_usuario. Siempre podéis dejar dicho campo vacío y valeros de un TRIGGER + SECUENCIA para que id_usuario aumentara automáticamente.

Autor: Janmi

Janmi es un informático entusiasta de la ciencia ficción, el diseño gráfico, el universo de Tolkien, fantasía épica y otras cosas frikis. Apasionado por la tecnología, ya sea desde el punto de visto técnico, domótico, funcional o de diseño.