Een INSERT VALUES
statement voegt altijd precies 1 rij in. Als u meerdere rijen met hardgecodeerde waarden wilt invoegen, is de meest gebruikelijke aanpak om twee afzonderlijke INSERT
uit te voeren. verklaringen.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Als je echt zou willen, zou je je hard-coded waarden kunnen selecteren uit dual
en doe dan een 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
Of je zou een INSERT ALL
. kunnen doen
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
Persoonlijk zou ik gewoon twee uitspraken gebruiken.
Hoewel dit geen verband houdt met uw vraag, een paar opmerkingen
- Maak altijd een lijst van de kolommen in uw
insert
uitspraak. U maakt uw SQL veel robuuster, zodat als u in de toekomst nieuwe kolommen toevoegt dieNULL
toestaan waarden zullen uw uitspraken nog steeds werken. En je vermijdt veel bugs als de kolomlijst daar is, in plaats van te hopen dat iemand de volgorde van de kolommen in de tabel onthoudt. - Als je een waarde invoegt in een
date
kolom, gebruik dan een datum en geen letterlijke tekenreeks die een datum vertegenwoordigt. Vertrouwen op impliciete conversie van gegevenstypes is een bron van veel bugs. Gebruik een explicieteto_date
of gebruik ANSI-datumletters. En gebruik 4-cijferige jaren.