The IF THEN statement has this structure:
IF condition THEN statements END IF;
If the condition is true, the statements run; otherwise, the IF statement does nothing.
In the following code, the statements between THEN and END IF run if and only if the value of sales is greater than quota+200.
SQL> SQL> drop table emp; Table dropped.-- from w w w.j a v a 2 s.co m SQL> CREATE TABLE emp( 2 empid NUMBER(6), 3 first_name VARCHAR2(20), 4 last_name VARCHAR2(25), 5 email VARCHAR2(25), 6 phone_number VARCHAR2(20), 7 hire_date DATE, 8 job_id VARCHAR2(10), 9 salary NUMBER(8,2), 10 commission_pct NUMBER(2,2), 11 manager_id NUMBER(6), 12 department_id NUMBER(4)) ; SQL> SQL> INSERT INTO emp VALUES( 100, 'Steven', 'King', 'SKING', '123.123.4567', TO_DATE('17-JUN-1987', 'dd-MON-yyyy'), 'CODER', 24000, NULL, NULL, 90); SQL> SQL> DECLARE 2 PROCEDURE p (sales NUMBER,quota NUMBER,emp_id NUMBER) 3 IS 4 bonus NUMBER := 0; 5 updated VARCHAR2(3) := 'No'; 6 BEGIN 7 IF sales > (quota + 200) THEN 8 bonus := (sales - quota)/4; 9 UPDATE emp 10 SET salary = salary + bonus 11 WHERE empid = emp_id; 12 updated := 'Yes'; 13 END IF; 14 15 DBMS_OUTPUT.PUT_LINE('Table updated?' || updated || ', ' ||'bonus = ' || bonus || '.'); 16 END p; 17 BEGIN 18 p(10100, 10000, 100); 19 END; 20 / Table updated?No, bonus = 0. PL/SQL procedure successfully completed. SQL> SQL>