繁体   English   中英

在oracle 11g中获取错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM