PL/SQL Control structures
PL/SQL Control structures
IF
IF-THEN, IF-THEN-ELSE and IF-THEN-ELSIF.
Example:
DECLARE x NUMBER:=5; y NUMBER:=3; z NUMBER:=0; BEGIN IF x > y THEN z:=x; DBMS_OUTPUT.PUT_LINE(z); ELSIF x < y THEN z:=y; DBMS_OUTPUT.PUT_LINE(z); ELSE z:=-1; DBMS_OUTPUT.PUT_LINE(z); END IF; END;
Example:
DECLARE v_dept_id NUMBER; v_id EMPLOYEES.id%TYPE:=3; v_sal_raise NUMBER:=0; BEGIN SELECT dept_id INTO v_dept_id from employees WHERE id = v_id; IF v_dept_id = 40 THEN v_sal_raise:=2; DBMS_OUTPUT.PUT_LINE(v_sal_raise); ELSIF v_dept_id = 10 THEN v_sal_raise:=3; DBMS_OUTPUT.PUT_LINE(v_sal_raise); ELSE v_sal_raise:=0; DBMS_OUTPUT.PUT_LINE(v_sal_raise); END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(v_sal_raise); END;
CASE
Example:
DECLARE test varchar2(10); BEGIN test := 'B'; CASE WHEN test = 'A' THEN DBMS_OUTPUT.PUT_LINE ('Test A'); WHEN test = 'B' THEN DBMS_OUTPUT.PUT_LINE ('Test B'); WHEN test = 'B' THEN DBMS_OUTPUT.PUT_LINE ('Test C'); ELSE DBMS_OUTPUT.PUT_LINE ('No such test!'); END CASE; END;
LOOP
There are 3 forms for LOOP: LOOP, WHILE-LOOP, FOR-LOOP
Example
DECLARE x NUMBER:=0; BEGIN LOOP x:= x + 1; IF x = 3 THEN EXIT; END IF; END LOOP; IF x < 3 THEN RETURN; END IF; DBMS_OUTPUT.PUT_LINE (' x= ' || TO_CHAR (x)); END;