Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So fügen Sie mehrere Zeilen in dieselbe Tabelle ein – Oracle 10g

Ein INSERT VALUES -Anweisung fügt immer genau 1 Zeile ein. Wenn Sie mehrere Zeilen mit fest codierten Werten einfügen möchten, besteht der üblichste Ansatz darin, einfach zwei separate INSERT auszuführen Aussagen.

insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);

Wenn Sie wirklich wollten, könnten Sie Ihre fest codierten Werte aus dual auswählen und führen Sie dann ein INSERT SELECT durch

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

Oder Sie könnten ein INSERT ALL ausführen

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

Persönlich würde ich nur zwei Aussagen verwenden.

Obwohl dies nichts mit Ihrer Frage zu tun hat, ein paar Anmerkungen

  • Listen Sie immer die Spalten in Ihrem insert auf Aussage. Sie machen Ihr SQL viel robuster, wenn Sie in Zukunft neue Spalten hinzufügen, die NULL zulassen Werte Ihre Aussagen werden immer noch funktionieren. Und Sie vermeiden viele Fehler, wenn die Spaltenliste genau da ist, anstatt zu hoffen, dass sich jemand an die Reihenfolge der Spalten in der Tabelle erinnert.
  • Wenn Sie einen Wert in ein date einfügen -Spalte, verwenden Sie ein Datum und kein Zeichenfolgenliteral, das ein Datum darstellt. Das Verlassen auf implizite Datentypkonvertierung ist eine Quelle vieler Fehler. Verwenden Sie ein explizites to_date oder verwenden Sie ANSI-Datumsliterale. Und verwenden Sie 4-stellige Jahreszahlen.