Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Inserindo várias linhas no Oracle


Do ponto de vista do desempenho, essas consultas são idênticas.

UNION ALL não prejudicará o desempenho, pois o Oracle estima a UNION 'ed consulta apenas quando necessário, ele não armazena em cache os resultados primeiro.

SELECT a sintaxe é mais flexível no sentido de que você pode manipular mais facilmente o SELECT query se você quiser mudar alguma coisa.

Por exemplo, 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

pode ser reescrito 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

Ao substituir 2 com o número apropriado, você pode obter qualquer número de linhas que desejar.

No caso de INSERT ALL , você teria que duplicar a descrição da tabela de destino, que é menos legível se você precisar, digamos, de 40 linhas.