Oracle MERGE (Italiano)

Riepilogo: in questo tutorial imparerai come utilizzare l’istruzione Oracle MERGE per eseguire un aggiornamento o un inserimento dati basati su una condizione specificata.

Introduzione all’istruzione MERGE Oracle

L’istruzione MERGE seleziona i dati da una o più tabelle di origine e lo aggiorna o lo inserisce in una tabella di destinazione. L’istruzione MERGE consente di specificare una condizione per determinare se aggiornare i dati o inserire dati nella tabella di destinazione.

Quanto segue illustra la sintassi di Oracle Istruzione MERGE:

Esaminiamo in dettaglio la dichiarazione MERGE:

Innanzitutto, specifica la tabella di destinazione (target_table) che desideri aggiornare o inserire nella clausola INTO.

Secondo, specificare l’origine dei dati (source_table) da aggiornare o inserire nella clausola USING.

Terzo, specificare la condizione di ricerca in base alla quale l’operazione di unione si aggiorna o si inserisce nella clausola ON.

Per ogni riga nella tabella di destinazione, Oracle valuta la condizione di ricerca:

  • Se il risultato è vero, Oracle aggiorna la riga con i dati corrispondenti dalla tabella di origine.
  • Nel caso in cui il risultato sia falso per un y righe, quindi Oracle inserisce la riga corrispondente dalla tabella di origine nella tabella di destinazione.

L’istruzione MERGE diventa utile quando si desidera combinare più istruzioni INSERT, UPDATE e DELETE in un’unica operazione.

Poiché MERGE è un’istruzione deterministica, non è possibile aggiornare più volte la stessa riga della tabella di destinazione nella stessa istruzione MERGE .

Puoi aggiungere una clausola DELETE WHERE facoltativa alla clausola MATCHED per ripulire dopo un’operazione di unione. La clausola DELETE elimina solo le righe nella tabella di destinazione che corrispondono sia a ON che a DELETE WHERE clausole.

Prerequisiti Oracle MERGE

Per eseguire l’istruzione MERGE, è necessario disporre del INSERT e UPDATE privilegi degli oggetti nelle tabelle di origine. Se utilizzi la clausola DELETE, devi anche avere il privilegio dell’oggetto DELETE sulla tabella di destinazione.

Oracle Esempio MERGE

Supponiamo di avere due tabelle: members e member_staging.

Noi inserisci una nuova riga nella tabella members ogni volta che abbiamo un nuovo membro. Quindi, i dati della tabella members vengono uniti ai dati della tabella member_staging.

Le seguenti istruzioni creare le tabelle members e member_staging:

Le seguenti INSERT le istruzioni inseriscono dati di esempio nelle tabelle members e member_staging:

Quando si aggiornano i dati da members tabella member_staging, dovremmo eseguire le seguenti azioni:

  • Aggiorniamo le righe con ID membro 1, 3 , 4 e 6 perché il rango o il cognome di questi membri in queste tabelle è diverso.
  • Inseriamo le righe con ID membro da 7 a 10 perché queste righe esistono nel members ma non nella member_staging tabella.

In totale 8 righe devono essere unite.

Il seguito ing è l’istruzione MERGE che esegue tutte queste azioni in un colpo solo.

L’istruzione merge confronta ogni riga nel members con ogni riga nella tabella member_staging in base ai valori nelle colonne member_id (vedi ON sopra).

Se i valori nelle member_id colonne di entrambe le tabelle sono uguali, MERGE aggiorna il nome, il cognome e il rango dalla tabella members alla tabella member_staging solo se i valori di first nome, cognome o colonne di classificazione di entrambe le tabelle sono diverse.

In caso contrario, inserisce la riga dalla tabella members nella member_staging tabella.

Oracle ha restituito 8 righe unite come previsto.

In questo tutorial, hai imparato a utilizzare Oracle MERGE dichiarazione per aggiornare o inserire dati in base a una condizione specificata.

  • Questo tutorial è stato utile?
  • SìNo

Leave a Reply

Lascia un commento

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