When evaluating a logical expression, PL/SQL uses short-circuit evaluation.
PL/SQL stops evaluating the expression as soon as it can determine the result.
In the following code, short-circuit evaluation prevents the OR expression from causing a divide-by-zero error.
When the value of zero_value is zero, the value of the left operand is TRUE, so PL/SQL does not evaluate the right operand.
If PL/SQL evaluated both operands before applying the OR operator, the right operand would cause a division by zero error.
SQL> SQL>-- w ww.j a v a 2 s . c o m SQL> DECLARE 2 zero_value INTEGER := 0; 3 total INTEGER := 100; 4 BEGIN 5 IF (zero_value = 0) OR ((total / zero_value) < 5) THEN 6 DBMS_OUTPUT.PUT_LINE('On hand quantity is zero.'); 7 END IF; 8 END; 9 / On hand quantity is zero. PL/SQL procedure successfully completed. SQL> SQL>