Dichiarazione del caso Oracle PL/SQL

Dichiarazione del caso Oracle PL/SQL

Il flusso di controllo è uno dei mattoni primari nella programmazione. Definisce l'ordine in cui i vari blocchi di codice vengono eseguiti in un programma.

Come la maggior parte dei linguaggi di programmazione, il linguaggio Oracle PL/SQL fornisce varie istruzioni di flusso di controllo come If-then, Case, per, WHY, ECT.

In questo post, impareremo come lavorare con la dichiarazione del caso in PL/SQL per introdurre il flusso di controllo nelle nostre query Oracle.

Introduzione alla dichiarazione del caso

L'istruzione Case consente di definire una sequenza di istruzioni. L'istruzione Caso quindi seleziona una sequenza da eseguire in base alla condizione specificata.

Pensalo come un modo più efficiente di dichiarare un insieme di blocchi IF-then mentre preserva la leggibilità.

Possiamo esprimere la sintassi dell'istruzione Case in Oracle come mostrato nel seguente:

CASO
Quando Condition1 quindi risultato1
Quando condizione2 quindi risultato2
..
Altro risultato
FINE

L'istruzione del caso valuta ogni condizione nelle clausole quando in questa sintassi.

Se l'istruzione trova un'istruzione corrispondente, restituisce il risultato corrispondente. Tuttavia, in alcuni casi, la dichiarazione del caso potrebbe non trovare una condizione di corrispondenza. In tale scenario, l'istruzione esegue il risultato definito nel blocco else.

NOTA: Il blocco altro è facoltativo. Se non disponibile, il motore del database utilizza la seguente sintassi:

ALTRO:
Sollevare case_not_found;

Ciò consente al motore del database di aumentare un'eccezione e mettere in pausa l'esecuzione quando non vi è alcuna condizione di corrispondenza.

Esempio 1: Esempio di base dell'istruzione del caso

Questo esempio mostra un esempio di base dell'operatore del caso in Oracle:

dichiarare
numero di età;
Entrata Char (10);
inizio
età: = 24;
Case Age
quando 17 allora
Entrata: = 'denined';
quando 24 allora
Voce: = '9.99 ';
Quando 45 allora
voce: = '15.99 ';
altro
Voce: = 'non consentito';
caso di fine;
Dbms_output.Put_line (voce);
FINE;

L'illustrazione fornita dovrebbe testare qualsiasi condizione di corrispondenza e restituire lo stato corrispondente. Ad esempio, poiché la condizione di corrispondenza è 24, la clausola ritorna come segue:

9.99

Esempio 2: istruzione case con una tabella del database

Questo esempio utilizza l'istruzione Case con una tabella del database.

Seleziona first_name, last_name, stipendio,
caso
Quando lo stipendio 2500 allora "alto"
altro "sconosciuto"
Termina come salario_status
dai dipendenti;

La query fornita utilizza la dichiarazione del caso per testare la gamma salariale dalla tabella dei dipendenti.

Il valore risultante è come mostrato nel seguente:

Conclusione

In questo post, hai imparato come utilizzare la dichiarazione del caso Oracle per testare le varie condizioni ed eseguire un'azione se una è vera.