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.