Oracle
 sql >> Database >  >> RDS >> Oracle

Inserimento di più righe in Oracle

Dal punto di vista delle prestazioni, queste query sono identiche.

UNION ALL non danneggerà le prestazioni, poiché Oracle stima la UNION 'ed interroga solo quando ne ha bisogno, non memorizza prima nella cache i risultati.

SELECT la sintassi è più flessibile nel senso che puoi più facilmente manipolare il SELECT interroga se vuoi cambiare qualcosa.

Ad esempio, questa query:

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

può essere riscritto come

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

Sostituendo 2 con il numero appropriato, puoi ottenere il numero di righe che desideri.

In caso di INSERT ALL , dovresti duplicare la descrizione della tabella di destinazione, che è meno leggibile se hai bisogno, ad esempio, di 40 righe.