1. Start
  2. Unternehmen
  3. Blog
  4. 23ai: Multirow Inserts

23ai: Multirow Inserts

Über einige Dinge in der Oracle Datenbank ärgert man sich immer wieder. So zum Beispiel beim Einfügen von Daten in eine Tabelle. Wollte man mehrere Datensätze in eine Tabelle einfügen, die nicht aus einer anderen Tabelle oder einer Query stammten, gab es bisher nur einen umständlichen Weg. Dieser bestand darin, die einzugügenden Daten mit mehreren SELECTs und per UNION ALL zu generieren. Diese einzelnen INSERTs

 

insert into orte (id, ort, land) values (1, 'Dresden', 'DE');
insert into orte (id, ort, land) values (2, 'Berlin', 'DE');
insert into orte (id, ort, land) values (6, 'Miami', 'US');

 

können dann in diesem Statement zusammengefasst werden:

 

insert into orte (id, ort, land)
select 1 id, 'Dresden', 'DE' from dual
union all
select 2, 'Berlin', 'DE' from dual
union all
select 6, 'Miami', 'US' from dual
;

 

Mit Oracle Datenbank 23ai ist es nun endlich möglich, wie in vielen anderen relationalen Datenbanken schon lange, mehrere Datensätze auch ohne diesen Umweg einzufügen. Dazu dient der sogenannte Table Values Constructor. Die drei Zeilen können damit wie folgt in einem Rutsch eingefügt werden.

 

insert into orte (id, ort, land)
values
  (1, 'Dresden', 'DE'),
  (2, 'Berlin', 'DE'),
  (6, 'Miami', 'US')
;

 

Die Lesbarkeit des Codes wird damit doch deutlich besser. Und der Grundidee von SQL, die Mengenorientierung, wird damit nun auch endlich Rechnung getragen.

Mehr zu neuen Features von 23ai können Sie auch bei unserem Fokustag am 24.10.2024 erfahren.

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich