En INSERT VALUES
sætning indsætter altid nøjagtig 1 række. Hvis du ønsker at indsætte flere rækker med hårdkodede værdier, vil den mest almindelige fremgangsmåde simpelthen være at udføre to separate INSERT
udsagn.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Hvis du virkelig ville, kunne du vælge dine hårdkodede værdier fra dual
og udfør derefter 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 du kan lave 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
Personligt ville jeg bare bruge to udsagn.
Selvom dette ikke er relateret til dit spørgsmål, et par kommentarer
- Altid, altid liste kolonnerne i dit
insert
udmelding. Du vil gøre din SQL meget mere robust, så hvis du tilføjer nye kolonner i fremtiden, der tilladerNULL
værdier, vil dine udsagn stadig fungere. Og du undgår mange fejl, når kolonnelisten er lige der, i stedet for at håbe på, at nogen husker rækkefølgen af kolonner i tabellen. - Hvis du indsætter en værdi i en
date
kolonne, skal du bruge en dato, ikke en streng, der repræsenterer en dato. At stole på implicit datatypekonvertering er en kilde til mange fejl. Brug en eksplicitto_date
eller brug bogstaver for ANSI-dato. Og brug 4-cifrede årstal.