PLS-00615: type mismatch found at between CASE operand and WHEN operands
Oracle PL/SQL error message: PLS-00615: type mismatch found at ‘string’ between CASE operand and WHEN operands
Cause:
In a simple CASE statement or expression, the CASE operand and WHEN operands do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Solution:
Change the CASE operand and WHEN operands so that their datatypes match.
Example:
DECLARE
v_num NUMBER:=2;
v_out VARCHAR2(12);
BEGIN
CASE v_num
WHEN v_num=1 THEN v_out:='A';
WHEN v_num=2 THEN v_out:='B';
ELSE v_out:='C';
END CASE;
DBMS_OUTPUT.put_line(v_out);
END;
Output:
PLS-00615: type mismatch found at ‘V_NUM’ between CASE operand and WHEN operands
Correct
DECLARE
v_num NUMBER:=2;
v_out VARCHAR2(12);
BEGIN
CASE v_num
WHEN 1 THEN v_out:='A';
WHEN 2 THEN v_out:='B';
ELSE v_out:='C';
END CASE;
DBMS_OUTPUT.put_line(v_out);
END;
Output:
B