Un INSERT VALUES
l'istruzione inserisce sempre esattamente 1 riga. Se desideri inserire più righe con valori codificati, l'approccio più comune sarebbe semplicemente eseguire due INSERT
separati dichiarazioni.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Se lo desideri davvero, puoi selezionare i tuoi valori hardcoded da dual
e quindi fai un 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
Oppure potresti fare un 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
Personalmente, userei solo due affermazioni.
Anche se questo non è correlato alla tua domanda, un paio di commenti
- Sempre, elenca sempre le colonne nel tuo
insert
dichiarazione. Renderai il tuo SQL molto più robusto in modo che se in futuro aggiungi nuove colonne che consentanoNULL
valori le tue affermazioni continueranno a funzionare. Ed eviterai molti bug quando l'elenco delle colonne è proprio lì invece di sperare che qualcuno ricordi l'ordine delle colonne nella tabella. - Se stai inserendo un valore in una
date
colonna, utilizzare una data non una stringa letterale che rappresenta una data. Affidarsi alla conversione implicita del tipo di dati è fonte di molti bug. Usa un esplicitoto_date
o usa i valori letterali di data ANSI. E usa anni a 4 cifre.