Um
INSERT VALUES
A instrução sempre insere exatamente 1 linha. Se você deseja inserir várias linhas com valores codificados, a abordagem mais comum seria simplesmente executar duas INSERT
separadas declarações. insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Se você realmente quiser, poderá selecionar seus valores codificados em
dual
e então faça um INSERT SELECT
insert into t1
select 131309, 'HP', '20-FEB-04',2000000,1235 from dual
union all
select 131310,'HT','20-APR-14',120020,1234 from dual
Ou você pode fazer um
INSERT ALL
insert all
into t1 values(131309,'HP','20-FEB-04',2000000,1235)
into t1 values(131310,'HT','20-APR-14',120020,1234)
select * from dual
Pessoalmente, eu usaria apenas duas declarações.
Embora isso não esteja relacionado à sua pergunta, alguns comentários
- Sempre, sempre liste as colunas em seu
insert
declaração. Você tornará seu SQL muito mais robusto para que, se adicionar novas colunas no futuro que permitamNULL
valores suas declarações ainda funcionarão. E você evitará muitos bugs quando a lista de colunas estiver bem ali, em vez de esperar que alguém se lembre da ordem das colunas na tabela. - Se você estiver inserindo um valor em uma
date
coluna, use uma data e não um literal de string que represente uma data. Confiar na conversão implícita de tipo de dados é uma fonte de muitos bugs. Use umto_date
explícito ou use literais de data ANSI. E use anos de 4 dígitos.