Oracle PL / SQL: CASE paziņojums ar piemēriem

Satura rādītājs:

Anonim

Kas ir CASE paziņojums?

CASE paziņojums ir līdzīgs paziņojumam IF-THEN-ELSIF, kas no pieejamajām opcijām izvēlas vienu alternatīvu, pamatojoties uz nosacījumu.

  • CASE paziņojums secības izvēlei izmanto "selector", nevis Būla izteiksmi.
  • Izteiksmes vērtība CASE paziņojumā tiks uzskatīta par atlasītāju.
  • Izteiksme var būt jebkura veida (aritmētika, mainīgie utt.)
  • Katrai alternatīvai tiek piešķirta noteikta iepriekš noteikta vērtība (selektors), un alternatīva ar selektora vērtību, kas atbilst nosacītās izteiksmes vērtībai, tiks izpildīta.
  • Atšķirībā no IF-THEN-ELSIF, CASE paziņojumu var izmantot arī SQL priekšrakstos.
  • ELSE bloks CASE paziņojumā satur secību, kas jāizpilda, kad nav izvēlēta neviena no alternatīvām.

Sintakse:

CASE (expression)WHEN  THEN action_blockl;WHEN  THEN action_block2;WHEN  THEN action_block3;ELSE action_block_default;END CASE;
  • Iepriekš minētajā sintaksē izteiksme atgriezīs vērtību, kas varētu būt jebkura veida (mainīgais, skaitlis utt.).
  • Katra klauzula WHEN tiek uzskatīta par alternatīvu, kurai ir un .
  • Tiks atlasīta klauzula WHEN, kas atbilst izteiksmes vērtībai, un tiks izpildīta atbilstošā .
  • 'ELSE' bloks nav obligāts, kurā ir , kas jāizpilda, ja neviena no alternatīvām neatbilst izteiksmes vērtībai.
  • “END” apzīmē CASE paziņojuma beigas, un tā ir obligāta CASE sastāvdaļa.

1. piemērs: Aritmētiskā aprēķināšana, izmantojot gadījumu

Šajā piemērā mēs veiksim aritmētisko aprēķinu starp diviem skaitļiem 55 un 5.

DECLAREa NUMBER :=55;b NUMBER :=5;arth_operation VARCHAR2(20) :='MULTIPLY’;BEGINdbms_output.put_line(‘Program started.' );CASE (arth_operation)WHEN ‘ADD’ THEN dbms_output.put_line(‘Addition of the numbers are: '|| a+b );WHEN ‘SUBTRACT' THEN dbms_output.put_line(‘Subtraction of the numbers are: '||a-b );WHEN ‘MULTIPLY' THEN dbms_output.put_line(‘Multiplication of the numbers are: '|| a*b);WHEN ‘DIVIDE' THEN dbms_output.put_line(‘Division of the numbers are:'|| a/b);ELSE dbms_output.put_line(‘No operation action defined. Invalid operation');END CASE;dbms_output.put_line(‘Program completed.' );END;/

Koda skaidrojums:

  • 2. koda rindiņa: mainīgā “a” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “55”.
  • 3. koda rindiņa: mainīgā “b” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “5.”
  • 4. koda rindiņa: Mainīgā “arth_operation” deklarēšana par “VARCHAR2” datu veidu, kura lielums ir 20, un inicializēšana ar vērtību “MULTIPLY”.
  • Kodu rinda 6: izdrukāt paziņojumu "Programma sākta".
  • 7. koda rindiņa: CASE pārbauda izteiksmes vērtību. Šajā gadījumā mainīgā “arth_operation” vērtība ir “MULTIPLY”. Šī vērtība tagad tiks uzskatīta par atlasi šim CASE paziņojumam.
  • 10. koda rindiņa: WHEN klauzula ar vērtību “MULTIPLY” atbilst atlasītāja vērtībai, tāpēc kontrolieris izvēlēsies šo action_block un izdrukās ziņojumu “Skaitļu reizināšana ir: 275”.
  • Koda rindiņa13: atzīmē CASE paziņojuma beigas.
  • Koda rindiņa14: paziņojuma "Programma pabeigta" izdrukāšana.

Koda izvade:

Program started.Multiplication of the numbers are: 275Program completed.

MEKLĒTĀ LIETAS Paziņojums

MEKLĒJUMA MEKLĒTAIS gadījums ir līdzīgs CASE paziņojumam, nevis izmantojot selektoru alternatīvas izvēlei, meklētajai lietai tieši būs WHEN klauzulā definētā izteiksme.

  • Pirmā klauzula WHEN, kas atbilst nosacījumam, tiks izpildīta, un kontrolieris izlaidīs pārējās alternatīvas.

Sintakse:

CASEWHEN  THEN action_blockl;WHEN  THEN action_block2;WHEN  THEN action_block3;ELSE action_block_default;END CASE;
  • Iepriekš minētajā sintaksē katrai WHEN klauzulai ir atsevišķas un .
  • Tiks izpildīta klauzula WHEN, kurai izteiksme atgriež TRUE.
  • 'ELSE' bloks nav obligāts, kas satur , kas jāizpilda, ja neviena no alternatīvām neatbilst.
  • “END” apzīmē CASE paziņojuma beigas, un tā ir obligāta CASE sastāvdaļa.

1. piemērs: Aritmētiskā aprēķināšana, izmantojot meklēto gadījumu

Šajā piemērā mēs veiksim aritmētisko aprēķinu starp diviem skaitļiem 55 un 5.

DECLARE a NUMBER :=55;b NUMBER :=5;arth_operation VARCHAR2(20) :='DIVIDE';BEGINdbms_output.put_line(‘Program started.' );CASEWHEN arth_operation = 'ADD'THEN dbms_output.put_line(‘Addition of the numbers are: '||a+b );WHEN arth_operation = ‘SUBTRACT'THEN dbms_output.put_line(‘Subtraction of the numbers are: '|| a-b);WHEN arth_operation = ‘MULTIPLY’THEN dbms_output.put_line(‘Multiplication of the numbers are: '|| a*b );WHEN arth_operation = ’DIVIDE'THEN dbms_output.put_line(‘Division of the numbers are: '|| a/b ):ELSE dbms_output.put_line(‘No operation action defined. Invalid operation');END CASE;dbms_output.put_line(‘Program completed.' );END;/

Koda skaidrojums:

  • 2. koda rindiņa: mainīgā “a” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “55”.
  • 3. koda rindiņa: mainīgā “b” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “5”.
  • Kodu rinda 4: Mainīgā “arth_operation” deklarēšana par “VARCHAR2” datu tipu, kura lielums ir 20, un inicializēšana ar vērtību “DIVIDE”.
  • Kodu rinda 6: izdrukāt paziņojumu "Programma sākta".
  • 7. koda rindiņa: sākas paziņojums MEKLĒTAIS LIETAS. Kods no 8. rindas līdz 13. rindai tiek izlaists, jo to atlasītāja vērtība (ADD, SUBTRACT, MULTIPLY) neatbilst “arth_operation” vērtībai.
  • 14. koda rindiņa: WHEN klauzulas izteiksme "arth_operation = 'DIVIDE" "ir apmierināta, un izteiksme atgriež TRUE.
  • 15. koda rinda: Tiks izpildīta klauzulas WHEN darbība_bloks, un tiks izdrukāts ziņojums “Skaitļu sadalījums ir: 11”.
  • 17. koda rindiņa: atzīmē CASE paziņojuma beigas.
  • 18. koda rindiņa: Pārskata “Programma pabeigta” izdrukāšana.

Koda izvade:

Program started.Division of the numbers are: 11Program completed.

Kopsavilkums

VEIDS APRAKSTS LIETOŠANA

LIETA

Līdzīgi IF-THEN-ELSIF paziņojumam. Būla izteiksmes vietā alternatīvu izvēlei tiek izmantots 'SELECTOR'.

Izmanto, lai izvēlētos no vairākām alternatīvām, izmantojot 'SELECTOR'

MEKLĒTA LIETA

CASE paziņojums bez faktiskā “SELECTOR”. Tā vietā tas satur faktisko stāvokli (kura vērtība ir PATIESA / PATIESA), kas atlasīs alternatīvas.

Izmanto, lai pārsvarā izvēlētos no vairāk nekā divām alternatīvām.