En INSERT VALUES
uttalande infogar alltid exakt 1 rad. Om du vill infoga flera rader med hårdkodade värden är den vanligaste metoden helt enkelt att köra två separata INSERT
uttalanden.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Om du verkligen ville kan du välja dina hårdkodade värden från dual
och gör sedan en 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
Eller så kan du göra en 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
Personligen skulle jag bara använda två påståenden.
Även om detta inte är relaterat till din fråga, ett par kommentarer
- Alltid, alltid lista ut kolumnerna i din
insert
påstående. Du kommer att göra din SQL mycket mer robust så att om du lägger till nya kolumner i framtiden som tillåterNULL
värden dina uttalanden kommer fortfarande att fungera. Och du slipper många buggar när kolumnlistan finns där istället för att hoppas att någon kommer ihåg ordningen på kolumner i tabellen. - Om du infogar ett värde i ett
date
kolumn, använd ett datum, inte en bokstavlig sträng som representerar ett datum. Att förlita sig på implicit datatypkonvertering är en källa till många buggar. Använd en explicitto_date
eller använd bokstavliga ANSI-datum. Och använd 4-siffriga årtal.