BACKGROUND IMAGE: iSTOCK/GETTY IMAGES

Este contenido es parte de Guía Esencial: Novedades de Oracle y consejos para sus usuarios
Resolver Problemas Consiga ayuda para problemas específicos con sus proyectos, procesos y tecnologías.

Tres tips para usar la sintaxis INSERTAR en Oracle para insertar múltiples filas

Si está buscando la sintaxis "Insertar" para insertar múltiples filas en Oracle, lea estos consejos de tres miembros de nuestra comunidad.

¿Cómo puedo insertar múltiples filas con un solo comando INSERT en Oracle? En lugar de escribir cinco comandos INSERT para insertar cinco filas en una tabla, prefiero ejecutar la inserción en una sola sentencia.

De acuerdo con información de PSOUG.org, una sentencia INSERT añade uno o más registros a cualquier tabla individual en una base de datos relacional. Para que un usuario inserte filas en una tabla, esta debe estar en el propio esquema del usuario, o el usuario debe tener el privilegio de objeto INSERT sobre la tabla.

Si está usando Oracle 10g o superiores, el miembro de la comunidad mrdenny dice que usted puede usar Insert All para insertar múltiples filas de datos desde múltiples tablas a una sola tabla:

INSERT ALL
INTO table (column1, column2, , ,)
VALUES (lista de valores)
SELECT ....
FROM table1, table2, ,
WHERE....;

Si está insertando datos desde una hoja de cálculo o un archivo delimitado por comas, dice mrdenny, debe crear ya sea una tabla temporal o una tabla externa desde donde cargar los datos.

Entretanto, el miembro de la comunidad FrankKulash ofreció esta sugerencia para insertar múltiples filas:

INSERT INTO table_name (column_1, column_2, ..., column_n)
SELECT value_1, value_2, ..., value_n
FROM ...

De modo alternativo, el miembro de la comunidad AmitBhuMca sugiere insertar múltiples filas en un solo paso usando la siguiente sintaxis para insertar de Oracle:

INSERT ALL INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3') INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3') INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3') SELECT * FROM dual;

Según AmitBhuMca, también se puede insertar múltiples valores en múltiples tablas usando un comando como este:

INSERT ALL INTO product (product_id,product_name) VALUES (1000, 'Disc') INTO product (product_id, product_name) VALUES (2000, 'Floppy') INTO customers (customer_id, customer_name, city) VALUES (999999, 'Anderson Construction', 'New York') SELECT * FROM dual;

Para más información sobre inserciones en Oracle:

Nota: Este consejo es una compilación de consejos de varios expertos de nuestros sitios hermanos ITKnowledge Exchange y SearchOracle.

Próximos pasos

Ecosistema Oracle: novedades y consejos de implementación

Cómo escapar de un SLA de Oracle sin ganancia como un DBA

Oracle RAC: problemas de rendimiento de base de datos

Este artículo se actualizó por última vez en marzo 2016

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close