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

Einfügen mehrerer Zeilen in Oracle

Aus Performance-Sicht sind diese Abfragen identisch.

UNION ALL schadet der Leistung nicht, da Oracle schätzt die UNION Die Abfrage wird nur bei Bedarf ausgeführt, die Ergebnisse werden nicht zuerst zwischengespeichert.

SELECT Die Syntax ist insofern flexibler, als Sie SELECT einfacher manipulieren können Abfrage, ob Sie etwas ändern möchten.

Zum Beispiel diese Abfrage:

insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
          select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual

kann umgeschrieben werden als

INSERT
INTO    pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
SELECT  7999 + level, 0, 'Multi ' || 7999 + level, 1
FROM    dual
CONNECT BY
        level <= 2

Durch Ersetzen von 2 Mit der entsprechenden Anzahl können Sie eine beliebige Anzahl von Zeilen erhalten.

Im Fall von INSERT ALL , müssten Sie die Beschreibung der Zieltabelle duplizieren, was weniger lesbar ist, wenn Sie beispielsweise 40 benötigen Zeilen.