INSERT VALUES
instrukcja zawsze wstawia dokładnie 1 wiersz. Jeśli chcesz wstawić wiele wierszy z wartościami zakodowanymi na stałe, najczęstszym podejściem byłoby po prostu wykonanie dwóch oddzielnych INSERT
oświadczenia.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Jeśli naprawdę chcesz, możesz wybrać swoje zakodowane na stałe wartości z dual
a następnie wykonaj 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
Możesz też wykonać 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
Osobiście użyłbym tylko dwóch stwierdzeń.
Chociaż nie jest to związane z Twoim pytaniem, kilka komentarzy
- Zawsze zawsze wymieniaj kolumny we
insert
oświadczenie. Sprawisz, że Twój SQL będzie znacznie bardziej niezawodny, więc jeśli w przyszłości dodasz nowe kolumny, które pozwolą naNULL
wartości, Twoje oświadczenia będą nadal działać. I unikniesz wielu błędów, gdy lista kolumn jest tam, zamiast mieć nadzieję, że ktoś zapamięta kolejność kolumn w tabeli. - Jeśli wstawiasz wartość do
date
kolumna, użyj daty, a nie literału ciągu, który reprezentuje datę. Poleganie na niejawnej konwersji typów danych jest źródłem wielu błędów. Użyj jawnegoto_date
lub użyj literałów daty ANSI. I użyj 4-cyfrowych lat.