Kontrollflyt er en av de primære byggesteinene i programmering. Den definerer rekkefølgen som de ulike kodeblokkene utføres i i et program.
Som de fleste programmeringsspråk, gir Oracle PL/SQL-språket forskjellige kontrollflyt-setninger som IF-THEN, CASE, FOR, WHILE, etc.
I dette innlegget vil vi lære hvordan du arbeider med CASE-setningen i PL/SQL for å introdusere kontrollflyten i våre Oracle-spørringer.
Introduksjon til CASE-erklæringen
CASE-setningen lar deg definere en sekvens av utsagn. Kasussetningen velger deretter én sekvens som skal utføres basert på den angitte betingelsen.
Tenk på det som en mer effektiv måte å deklarere et sett med hvis-da-blokker samtidig som lesbarheten bevares.
Vi kan uttrykke syntaksen til CASE-setningen i Oracle som vist i følgende:
SAKNÅR tilstand1 SÅ resultat1
NÅR tilstand2 SÅ resultat2
...
ANDRE resultat
SLUTT
CASE-setningen evaluerer hver betingelse i WHEN-setningene i denne syntaksen.
Hvis setningen finner et samsvarende utsagn, returnerer det samsvarende resultatet. I noen tilfeller kan det imidlertid hende at sakserklæringen ikke finner en samsvarende betingelse. I et slikt scenario utfører setningen resultatet som er definert i ELSE-blokken.
MERK : ELSE-blokken er valgfri. Hvis den ikke er tilgjengelig, bruker databasemotoren følgende syntaks:
ELLERS:RAISE CASE_NOT_FOUND;
Dette lar databasemotoren opprette et unntak og pause utførelsen når det ikke er noen samsvarende betingelse.
Eksempel 1: CASE Statement Grunnleggende eksempel
Dette eksemplet viser et grunnleggende eksempel på bruk av case-operatøren i Oracle:
erklærealdersnummer;
oppføring char(10);
begynne
alder:= 24;
saks alder
når 17 da
oppføring := 'avvist';
når 24 da
oppføring := '9.99';
når 45 da
oppføring :='15.99';
ellers
oppføring := 'ikke tillatt';
slutt tilfelle;
DBMS_OUTPUT.PUT_LINE(oppføring);
slutt;
Den medfølgende illustrasjonen bør teste for alle samsvarende tilstander og returnere den tilsvarende statusen. For eksempel, siden samsvarsbetingelsen er 24, returnerer leddet som følger:
9,99Eksempel 2: CASE-uttalelse med en databasetabell
Dette eksemplet bruker case-setningen med en databasetabell.
velg fornavn, etternavn, lønn,sak
når lønn 2500 så 'Høy'
annet 'Ukjent'
ende som lønnsstatus
fra ANSATTE;
Den oppgitte spørringen bruker saksuttalelsen til å teste lønnsområdet fra de ansattes tabell.
Den resulterende verdien er som vist i følgende:
Konklusjon
I dette innlegget lærte du hvordan du bruker Oracle case-setningen til å teste de ulike forholdene og utføre en handling hvis en er sann.