Atualizações com base em consultas
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Misc | PL / SQL | SQL | RAC | WebLogic | Linux
Home “Artigos” Misc “aqui
Este artigo descreve como uma tabela pode ser atualizada usando dados de outra tabela.
- Configuração
- Método de subconsulta
- Método de visualização em linha
- Método de instrução MERGE
Artigos relacionados.
- Instrução MERGE
Configuração
A tabela DEST_TAB contém 10.000 linhas. O SOURCE_TAB a tabela contém 5.000 linhas, cada uma delas com um valor de chave correspondente a uma linha da tabela DEST_TAB, mas dados diferentes na CODE e DESCRIPTION colunas.
Neste ponto, não podemos ver nenhum dos valores em DESCRIPTION coluna da tabela DEST_TAB contém a palavra “Atualizado”.
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
O objetivo é atualizar o linhas na tabela DEST_TAB com os dados da tabela SOURCE_TAB.
Método de subconsulta
T A primeira opção é fazer uma atualização da tabela DEST_TAB usando uma subconsulta para extrair os dados corretos da tabela SOURCE_TAB. Observe o predicado EXISTS para excluir linhas da tabela DEST_TAB sem nenhuma linha correspondente em SOURCE_TAB mesa. Sem isso, as linhas sem correspondência terão seus valores definidos como NULL.
O plano de execução para o volume de dados atual é mostrado abaixo.
Se a carga de trabalho for suficientemente grande e o servidor puder lidar com a carga de trabalho extra, a PARALLEL dica pode ser usada para fazer isso funcionar em paralelo.
Método de visualização em linha
A segunda opção é juntar as duas tabelas como uma visão embutida e basear a atualização nisso.
O plano de execução para o volume de dados atual é mostrado abaixo.
Se a carga de trabalho for suficientemente grande e o servidor pode lidar com a carga de trabalho extra, a PARALLEL dica pode ser usada para fazer isso funcionar em paralelo.
O número de linhas atualizadas pode ser alterado adicionando uma cláusula WHERE para a visualização embutida ou a instrução de atualização principal.
- Declaração MERGE
Espero que sim ajuda. Atenciosamente, Tim …
Voltar ao topo.