Aggiornamenti basati su query

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Varie | PL / SQL | SQL | RAC | WebLogic | Linux

Home “Articoli” Varie “qui

Questo articolo descrive come una tabella può essere aggiornata utilizzando i dati di unaltra tabella.

  • Imposta
  • Metodo di sottoquery
  • Metodo di visualizzazione in linea
  • Metodo di istruzione MERGE

Articoli correlati.

  • Istruzione MERGE

Setup

La tabella DEST_TAB contiene 10.000 righe. Il contiene 5.000 righe, ognuna delle quali ha un valore di chiave corrispondente con una riga della tabella DEST_TAB, ma dati diversi nella CODE e DESCRIPTION.

A questo punto non possiamo vedere nessuno dei valori nelle DESCRIPTION della tabella DEST_TAB contiene la parola “Aggiornato”.

SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>

Lo scopo è aggiornare il righe nella tabella DEST_TAB con i dati della tabella SOURCE_TAB.

Metodo sottoquery

T La prima opzione è eseguire un aggiornamento della tabella DEST_TAB utilizzando una sottoquery per estrarre i dati corretti dalla tabella SOURCE_TAB. Nota il EXISTS predicato per escludere righe dalla tabella DEST_TAB senza riga corrispondente in SOURCE_TAB tavolo. Senza questo, le righe senza corrispondenza avranno i loro valori impostati su NULL.

Il piano di esecuzione per il volume di dati corrente è mostrato di seguito.

Se il carico di lavoro è sufficientemente grande e il server può far fronte al carico di lavoro aggiuntivo, il PARALLEL suggerimento può essere utilizzato per eseguire questa operazione in parallelo.

Metodo di visualizzazione in linea

La seconda opzione consiste nellunire le due tabelle come una visualizzazione in linea e basare laggiornamento su quella.

Il piano di esecuzione per il volume di dati corrente è mostrato di seguito.

Se il carico di lavoro è sufficientemente grande e il server può far fronte al carico di lavoro extra, il suggerimento PARALLEL può essere utilizzato per farlo funzionare in parallelo.

Il numero di righe aggiornate può essere modificato aggiungendo una WHERE clausola per la visualizzazione inline o listruzione di aggiornamento principale.

  • Istruzione MERGE

Spero che questo aiuta. Saluti Tim …

Torna allinizio.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *