29.11.2014 Views

Capitolul II Structurarea bazelor de date

Capitolul II Structurarea bazelor de date

Capitolul II Structurarea bazelor de date

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

48<br />

b. IF-THEN-ELSE<br />

Exemplu:<br />

BEGIN<br />

END;<br />

/<br />

-- Declaratii <strong>de</strong> variabile<br />

vanzari NUMBER(8,2) := 12100;<br />

cota NUMBER(8,2) := 10000;<br />

bonus NUMBER(6,2);<br />

ang_id NUMBER(6) := 120;<br />

IF vanzari > (cota + 200) THEN<br />

ELSE<br />

END IF;<br />

bonus := (vanzari - cota)/4;<br />

bonus := 50;<br />

UPDATE angajati SET salar = salar + bonus WHERE<br />

angajat_id = ang_id;<br />

În secvenŃa anterioară prezenŃa clauzei ELSE permite <strong>de</strong>finirea a două<br />

blocuri <strong>de</strong> instrucŃiuni, unul cuprins între THEN şi ELSE şi al doilea cuprins între<br />

ELSE şi END IF. În funcŃie <strong>de</strong> valoarea <strong>de</strong> a<strong>de</strong>văr a expresiei logice va fi executat<br />

primul bloc sau al doilea.<br />

c. IF-THEN-ELSIF<br />

Uneori este necesară alegerea unei secvenŃe <strong>de</strong> cod din mai multe,<br />

fiecare fiind condiŃionată <strong>de</strong> câte o expresie logică. În acest caz se recomandă<br />

folosirea structurii IF-THEN-ELSIF.<br />

Exemplu:<br />

-- Declaratii <strong>de</strong> variabile<br />

vanzari NUMBER(8,2) := 20000;<br />

bonus NUMBER(6,2);<br />

ang_id NUMBER(6) := 120;<br />

BEGIN<br />

IF vanzari > 50000 THEN<br />

bonus := 1500;<br />

ELSIF vanzari > 35000 THEN<br />

bonus := 500;<br />

ELSE

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!