Reputation: 13
Error:
ORA-00932: inconsistent datatypes: expected NUMBER got CHAR
SQL:
SELECT CASE WHEN
(
SELECT COUNT(COMP_CODE) FROM COMPANY_MASTER
)=0 THEN 1
ELSE
(
SELECT LPAD((SELECT MAX(COMP_CODE)+1 FROM COMPANY_MASTER),3, 0) NOS FROM DUAL
)
END AS DOCNO FROM DUAL;
Upvotes: 1
Views: 68
Reputation: 312219
Both branches of the if-else should return the same type. If the else
branch returns a string (which is the return value of lpad
), so should the if
branch. E.g.:
SELECT CASE WHEN
(
SELECT COUNT(COMP_CODE) FROM COMPANY_MASTER
)=0 THEN '1' -- '1' is a string literal
ELSE
(
SELECT LPAD((SELECT MAX(COMP_CODE)+1 FROM COMPANY_MASTER),3, 0) NOS FROM DUAL
)
END AS DOCNO FROM DUAL;
Upvotes: 3