kovaleff - Fotolia

Três dicas para inserir várias linhas no Oracle com a sintaxe INSERT

Se você está procurando a sintaxe "Insert" para inserir várias linhas no Oracle, leia estas dicas de três membros de nossa comunidade.

Como posso inserir várias linhas com um único comando INSERT no Oracle? Em vez de escrever cinco comandos INSERT para inserir cinco linhas em uma tabela, prefiro executar a inserção em uma única instrução.

De acordo com informações do PSOUG.org, uma instrução INSERT adiciona um ou mais registros a qualquer tabela individual em um banco de dados relacional. Para um usuário inserir linhas em uma tabela, a tabela deve estar no próprio esquema do usuário ou o usuário deve ter privilégio de objeto INSERT na tabela.

Se você estiver usando o Oracle 10g ou superior, o membro da comunidade mrdenny diz que você pode usar Insert All para inserir várias linhas de dados de várias tabelas em uma única tabela:

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

Se você estiver inserindo dados de uma planilha ou arquivo delimitado por vírgulas, diz mrdenny, você precisa criar uma tabela temporária ou externa para carregar os dados.

Enquanto isso, o membro da comunidade FrankKulash ofereceu esta sugestão para inserir várias linhas:

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

Como alternativa, o membro da comunidade AmitBhuMca sugere a inserção de várias linhas em uma etapa usando a seguinte sintaxe de inserção do 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;

De acordo com AmitBhuMca, você também pode inserir vários valores em várias tabelas usando um 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 mais informações sobre inserções no Oracle:

  • com oferece documentação de ajuda sobre como inserir várias linhas.
  • Encontre um comando que gere instruções INSERT do Oracle.
  • Aprenda como copiar uma tabela para outra tabela no Oracle.
  • Descubra um método automático para inserir registros no Oracle.

Observação: esta dica é uma compilação de dicas de vários especialistas de nossos sites irmãos ITKnowledge Exchange e SearchOracle.

Saiba mais sobre Bancos de dados e software Oracle