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.