Dmitry Nikolaev - stock.adobe.co
Tres tips para insertar múltiples filas en Oracle con la sintaxis INSERTAR
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:
- Oracle.com ofrece documentación de ayuda sobre cómo insertar múltiples filas.
- Encuentre un comando que genere sentencias INSERT de Oracle.
- Aprenda cómo copiar una tabla en otra tabla en Oracle.
- Descubra un método automático para insertar registros en Oracle.
Nota: Este consejo es una compilación de consejos de varios expertos de nuestros sitios hermanos ITKnowledge Exchange y SearchOracle.