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 |