Sie sind auf Seite 1von 2

LABORATOR BD 7.

PL/SQL EXEMPLE

1.
DROP TABLE angajati;
CREATE TABLE angajati (
coda NUMBER (4) CONSTRAINT pk_coda PRIMARY KEY,
nume VARCHAR2(15),
pren VARCHAR2(15),
orel NUMBER (3),
bonus NUMBER(5,2),
salar NUMBER(6));

SET SERVEROUTPUT ON;

DECLARE
v_salar NUMBER;
v_ore_lucrate NUMBER := 40;
v_salar_orar NUMBER := 22.50;
v_bonus NUMBER := 150;
v_ang1 angajati%ROWTYPE;
BEGIN
v_salar := (v_ore_lucrate * v_salar_orar) + v_bonus;
v_ang1.pren := 'Ion';
v_ang1.nume := 'POP';
DBMS_OUTPUT.PUT_LINE ('Nume'||' '||'Prenume'||' '||'Salar');
DBMS_OUTPUT.PUT_LINE (v_ang1.nume||' '||v_ang1.pren||' '||v_salar);
END;

2.

DECLARE
x NUMBER(7,2);
BEGIN
SELECT sal INTO x FROM emp WHERE empno = 7788;
IF x < 3000 THEN UPDATE emp SET sal = 3000
WHERE empno = 7788;
END IF;
END;

3.
SET SERVEROUTPUT ON;
DECLARE
grade CHAR(1);
BEGIN
grade := 'B';
CASE
WHEN grade = 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN grade = 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
WHEN grade = 'C' THEN DBMS_OUTPUT.PUT_LINE('Good');
WHEN grade = 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair');
WHEN grade = 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');
ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
END CASE;
END;

4.
SET SERVEROUTPUT ON;
DECLARE
grade CHAR(1);
1
BEGIN
grade := 'B';
CASE grade
WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('Good');
WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair');
WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');
ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
END CASE;
END;

5.
SET SERVEROUTPUT ON;
DECLARE someone emp%ROWTYPE;
BEGIN
FOR someone IN (SELECT * FROM emp WHERE empno < 7900 )
LOOP
DBMS_OUTPUT.PUT_LINE('name = ' || someone.ename ||
', job = ' || someone.job);
END LOOP;
END;

6.

SET SERVEROUTPUT ON;


DECLARE
s PLS_INTEGER := 0;
i PLS_INTEGER := 0;
j PLS_INTEGER;
BEGIN
<<outer_loop>>
LOOP
i := i + 1;
j := 0;
<<inner_loop>>
LOOP
j := j + 1;
s := s + i * j;
EXIT inner_loop WHEN (j > 5);
EXIT outer_loop WHEN ((i * j) > 15);
END LOOP inner_loop;
END LOOP outer_loop;
DBMS_OUTPUT.PUT_LINE ('The sum of products equals: ' || TO_CHAR(s));
END;

Das könnte Ihnen auch gefallen