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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

45<br />

complet := NULL; -- literal BOOLEAN (valoare ne<strong>de</strong>finita)<br />

true_or_false := (3 = 4);<br />

true_or_false := (3 < 4);<br />

END;<br />

/<br />

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

<strong>date</strong>1 DATE := '11-AUG-2005'; -- literal DATE<br />

time1 TIMESTAMP;<br />

BEGIN<br />

time1 := '11-AUG-2005 11:01:01 PM'; -- literal TIMESTAMP<br />

END;<br />

/<br />

Atribuirea folosind SELECT ... INTO<br />

Dacă valoarea unei variabile se <strong>de</strong>termină în funcŃie <strong>de</strong> valori dintr-o linie<br />

a unui tabel al bazei <strong>de</strong> <strong>date</strong>, PL/SQL permite atribuirea valorii acesteia folosind<br />

un cursor implicit, respectiv o construcŃie<br />

SELECT expresie INTO variabilă FROM tabel WHERE<br />

condiŃie_selectare_linie<br />

Expresia folosită poate folosi variabile, literali şi valori din linia<br />

corespunzătoare din tabel.<br />

Exemplu:<br />

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

procent_bonus CONSTANT NUMBER(2,3) := 0.05;<br />

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

ang_id NUMBER(6) := 120; -- atribuie o val. pt testare<br />

BEGIN<br />

-- preia salar din tabelul angajati, calculeaza bonusul şi atribuie<br />

-- rezultatul -> variabila bonus<br />

SELECT salar * procent_bonus INTO bonus FROM angajati<br />

WHERE angajat_id = ang_id;<br />

-- listeaza codul angajat_id, bonusul si procent_bonus<br />

DBMS_OUTPUT.PUT_LINE ( 'Angajat: ' || TO_CHAR(ang_id)<br />

|| ' Bonus: ' || TO_CHAR(bonus) || ' Procent bonus: ' ||<br />

TO_CHAR(procent_bonus*100));

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

Saved successfully!

Ooh no, something went wrong!