Oracle Multi Row Inserts (row value constructor)


Ich wollte bei einer Oracle Datenbank ein Insert mit mehreren Zeilen durchführen:

insert into foo values
('foo1', 'bar1'),
('foo2', 'bar2');

Aber die Oracle Datenbank hat mir einen ORA-Fehlercode um die Ohren geworfen. Ich war irritiert.

Meine lokale Oracle Testdatenbank hat das aber ohne Probleme geschluckt. Meine lokale Testdatenbank ist aber auch die aktuelle Version 23ai irgendwas (vorher 23c, umbenannt zu 23ai, wegen artificial intelligence (kein Witz, aber auch nicht überraschend, nich nich?)).

Scheinbar ist das ein ganz frisches Feature der Oracle Datenbank 23c.

Das Feature heißt wohl row value constructor und existiert seit SQL-92. Postgres unterstützt dieses Feature seit Version 8.2. Postgresql 8.2 wurde am 05.12.2006 veröffentlicht. Ich musste das nachschlagen, weil manchmal benutzt man ja Dinge in SQL, die gar nicht "Standard" sind und sie einfach so "hinnimmt".

18 Jahre später hat Oracle das nun also auch. Das ist doch super :).