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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *