1
resposta

Há um jeito mais prático de inserir os dados na tabela?

Como por exemplo apenas um insert into e os values separados por virgulas? Ex:

INSERT INTO tb_vendedores (matricula, nome, data_admissao, percentual_comissao) VALUES ('00265', 'Jhon Wayne', TO_DATE('27/03/2019', 'MM/DD/YYYY'), 0.12), ('00777', 'Katy Peterson', TO_DATE('04/02/2020', 'MM/DD/YYYY'), 0.10), ('00342', 'Rodrigo Almeida', TO_DATE('18/01/2022', 'DD/MM/YYYY'), 0.09), ('00729', 'Patricia Martins', TO_DATE('02/01/2022', 'DD/MM/YYYY'), 0.09);

Eu tentei isso por curiosidade e retornou erro de sintaxe.

1 resposta

Oi, Daniel! Como vai?

No Oracle SQL, diferente de alguns outros bancos de dados como o MySQL e PostgreSQL, não é possível inserir múltiplos registros de uma vez utilizando um único INSERT INTO com múltiplos VALUES separados por vírgula.

Para inserir múltiplos registros de forma prática, você pode usar a estrutura INSERT ALL, que permite adicionar vários registros de uma vez. Veja um exemplo correto para sua situação:


INSERT ALL
    INTO tb_vendedores (matricula, nome, data_admissao, percentual_comissao) 
    VALUES ('00265', 'Jhon Wayne', TO_DATE('27/03/2019', 'MM/DD/YYYY'), 0.12)
    INTO tb_vendedores (matricula, nome, data_admissao, percentual_comissao) 
    VALUES ('00777', 'Katy Peterson', TO_DATE('04/02/2020', 'MM/DD/YYYY'), 0.10)
    INTO tb_vendedores (matricula, nome, data_admissao, percentual_comissao) 
    VALUES ('00342', 'Rodrigo Almeida', TO_DATE('18/01/2022', 'DD/MM/YYYY'), 0.09)
    INTO tb_vendedores (matricula, nome, data_admissao, percentual_comissao) 
    VALUES ('00729', 'Patricia Martins', TO_DATE('02/01/2022', 'DD/MM/YYYY'), 0.09)
SELECT * FROM dual;
  • O INSERT ALL permite inserir vários registros ao mesmo tempo.
  • Cada INTO tb_vendedores (...) VALUES (...) representa um novo registro na tabela.
  • SELECT * FROM dual; é necessário para finalizar a operação no Oracle.
  • Certifique-se de que os formatos de data estão corretos. No seu exemplo, há uma mistura entre 'MM/DD/YYYY' e 'DD/MM/YYYY'.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado