Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Data Types
 

Short-circuit evaluation with conditional structures

PL/SQL stops evaluating the expression as soon as the result can be determined. SQL> declare   2      v_day NUMBER := TO_CHAR(TO_DATE('20060101','YYYYMMDD'),'D');   3   4      function f_DayNr return NUMBER is   5      begin   6          DBMS_OUTPUT.put_line('Called function');   7          return v_day;   8      end;   9  begin  10      if f_DayNr in (1,7) or (f_DayNr not in (1,7) and (f_DayNr between 0 and 6 or f_DayNr between 19 and 23))  11      then  12          DBMS_OUTPUT.put_line(v_day || ': Off-peak');  13      else  14          DBMS_OUTPUT.put_line(v_day || ': Peak');  15      end if;  16  end;  17  / Called function 1: Off-peak PL/SQL procedure successfully completed. SQL>