[英]Getting error in oracle 11g
错误:
ORA-00932:不一致的数据类型:预期NUMBER获得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;
if-else的两个分支都应该返回相同的类型。 如果else
分支返回一个字符串(这是lpad
的返回值),那么if
分支也是if
。 例如:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.