When creating selector CASE statements, you cannot have NULL in the list of possible values. : CASE « PL SQL Statements « Oracle PL/SQL Tutorial






Although the following code is correct from the syntax point of view, it doesn't work:

create or replace function f_getDateType (in_dt DATE)
  return VARCHAR2
  is
      v_out VARCHAR2(10);
  begin
      case TO_CHAR(in_dt,'d')
          when null then
          -- value will be null if in_dt is null
              v_out:='<NULL>';
          when 1 then
              v_out:='SUNDAY';
          when 7 then
              v_out:='SATURDAY';
          else
              v_out:='WEEKDAY';
      end case;
      return v_out;
  end;
  /








22.2.CASE
22.2.1.CASE statements
22.2.2.When creating selector CASE statements, you cannot have NULL in the list of possible values.
22.2.3.Use CASE statement
22.2.4.Named case block
22.2.5.case when
22.2.6.An example of comparison of two numbers using a searched CASE expression
22.2.7.Variable assignment with case statement
22.2.8.Use case statement in a dbms_output.put_line
22.2.9.Simple CASE statement with range
22.2.10.Case statement to call procedure
22.2.11.Return statement with case
22.2.12.Use case statement in procedure call to use the proper parameter value