sql >> Base de Datos >  >> RDS >> Oracle

Insertar varias filas en Oracle

Desde el punto de vista del rendimiento, estas consultas son idénticas.

UNION ALL no dañará el rendimiento, ya que Oracle estima la UNION 'ed consulta solo cuando lo necesita, no almacena en caché los resultados primero.

SELECT la sintaxis es más flexible en el sentido de que puede manipular más fácilmente el SELECT consulta si quieres cambiar algo.

Por ejemplo, esta consulta:

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

se puede reescribir como

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

Reemplazando 2 con el número apropiado, puede obtener la cantidad de filas que desee.

En caso de INSERT ALL , tendría que duplicar la descripción de la tabla de destino, que es menos legible si necesita, digamos, 40 filas.