INSERT VALUES
винаги вмъква точно 1 ред. Ако искате да вмъкнете няколко реда с твърдо кодирани стойности, най-често срещаният подход би бил просто да изпълните два отделни INSERT
изявления.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Ако наистина искате, можете да изберете вашите твърдо кодирани стойности от dual
и след това направете 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
Или можете да направите 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
Лично аз бих използвал само две твърдения.
Въпреки че това не е свързано с вашия въпрос, няколко коментара
- Винаги, винаги изброявайте колоните във вашата
insert
изявление. Ще направите своя SQL много по-стабилен, така че ако добавите нови колони в бъдеще, които позволяватNULL
стойности, вашите твърдения ще продължат да работят. И ще избегнете много грешки, когато списъкът с колони е точно там, вместо да се надявате, че някой помни реда на колоните в таблицата. - Ако вмъквате стойност в
date
колона, използвайте дата, а не низов литерал, който представлява дата. Разчитането на имплицитно преобразуване на типове данни е източник на много грешки. Използвайте изриченto_date
или използвайте литерали за дата ANSI. И използвайте 4-цифрени години.