1
resposta

[Dúvida] Inserção de linhas.

Uma dúvida, gostaria de saber se há uma forma mais prática de inserir informações no Oracle, assim como no SQLite. Achei um tanto quanto trabalho.

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao)
values
('0040', 'Maria do Rosário', '23/07/2012', 0.15),
('00810', 'Márcia Almeida', '14/12/2016', 0.18),
('00414', 'Carlos Moreira', '13/11/2015', 0.14),
('00934', 'Juvenildo Martins', '09/03/2010', 0.20);

Tentei fazer dessa forma mas deu erro.

1 resposta

Para inserir múltiplas linhas no Oracle, você precisará repetir a instrução INSERT para cada linha que deseja adicionar, ou usar uma instrução INSERT SELECT para inserir dados de uma tabela existente.

ASSIM:

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao) VALUES ('0040', 'Maria do Rosário', TO_DATE('23/07/2012', 'DD/MM/YYYY'), 0.15);

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao) VALUES ('00810', 'Márcia Almeida', TO_DATE('14/12/2016', 'DD/MM/YYYY'), 0.18);

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao) VALUES ('00414', 'Carlos Moreira', TO_DATE('13/11/2015', 'DD/MM/YYYY'), 0.14);

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao) VALUES ('00934', 'Juvenildo Martins', TO_DATE('09/03/2010', 'DD/MM/YYYY'), 0.20);

OU ASSIM:

INSERT INTO VENDEDORES (matricula, nome, data_admissao, percentual_comissao) SELECT '0040', 'Maria do Rosário', TO_DATE('23/07/2012', 'DD/MM/YYYY'), 0.15 FROM DUAL UNION ALL SELECT '00810', 'Márcia Almeida', TO_DATE('14/12/2016', 'DD/MM/YYYY'), 0.18 FROM DUAL UNION ALL SELECT '00414', 'Carlos Moreira', TO_DATE('13/11/2015', 'DD/MM/YYYY'), 0.14 FROM DUAL UNION ALL SELECT '00934', 'Juvenildo Martins', TO_DATE('09/03/2010', 'DD/MM/YYYY'), 0.20 FROM DUAL;