Short-circuit evaluation with conditional structures. : NULL « PL SQL Data Types « Oracle PL/SQL Tutorial






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>








21.24.NULL
21.24.1.All logical operations (including NOT) involving NULL always return NULL
21.24.2.variable:=nvl(value1,value2);
21.24.3.In PL/SQL the Boolean expression NULL=NULL evaluates to FALSE.
21.24.4.Short-circuit evaluation with conditional structures.
21.24.5.Compare with NULL value for equality
21.24.6.Compare with NULL value for non-equality
21.24.7.Compare NULL value and OR operator
21.24.8.Compare with NULL value and 'AND' operator
21.24.9.Compare Integer value with NULL value
21.24.10.Use IS NULL in IF statement
21.24.11.Use NVL in IF statement to deal with the NULL value comparison