我有这样的查询:
select LENGTH(NVL(exam.vl_result,' ')) from exam;
我得到了这个错误:ORA-00932: inconsistent datatypes: expected - got CLOB
列vl_result
是CLOB,但在这种情况下我需要使用NVL。是否有任何方法使用数据类型CLOB的NVL ?如果没有,那么获得类似查询的最佳方法是什么?
使用case..when
如下:
select case when exam.vl_result is null then 1
else LENGTH(exam.vl_result)
end
from exam;
注意:使用dbms_lob.getlength
嗯…不如先运行length()
:
coalesce(length(exam.vl_result), 1)