INSERT VALUES
příkaz vždy vloží přesně 1 řádek. Pokud chcete vložit více řádků s pevně zakódovanými hodnotami, nejběžnějším postupem by bylo jednoduše provést dva samostatné INSERT
prohlášení.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Pokud opravdu chcete, můžete vybrat pevně zakódované hodnoty z dual
a poté proveďte 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
Nebo můžete udělat 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
Osobně bych použil pouze dva výroky.
Ačkoli to nesouvisí s vaší otázkou, pár komentářů
- Vždy uveďte sloupce v
insert
tvrzení. Vaše SQL bude mnohem robustnější, takže pokud v budoucnu přidáte nové sloupce, které umožňujíNULL
hodnoty vaše prohlášení budou stále fungovat. A vyhnete se spoustě chyb, když je seznam sloupců přímo zde, než abyste doufali, že si někdo pamatuje pořadí sloupců v tabulce. - Pokud vkládáte hodnotu do
date
použijte datum, nikoli řetězcový literál, který představuje datum. Spoléhání se na implicitní konverzi datových typů je zdrojem mnoha chyb. Použijte explicitníto_date
nebo použijte datové literály ANSI. A použijte 4místné roky.