具有 CLOB 数据类型的 NVL 函数
Posted
技术标签:
【中文标题】具有 CLOB 数据类型的 NVL 函数【英文标题】:NVL function with CLOB datatype 【发布时间】:2021-01-19 11:29:04 【问题描述】:我有这个问题:
select LENGTH(NVL(exam.vl_result,' ')) from exam;
我收到了这个错误:ORA-00932: inconsistent datatypes: expected - got CLOB
vl_result
列是 CLOB,但在这种情况下我需要使用 NVL。有没有办法将 NVL 与数据类型 CLOB 一起使用?如果不是,那么获得类似查询的最佳方式是什么。
【问题讨论】:
我正在使用 oracle 11g 并且能够将 NVL 与 clob 列一起使用。事实上,我和你一样的查询,它对我有用。您使用的是哪个 oracle 版本? 不幸的是我使用的是 Oracle 10g :( 然后尝试以下给出的解决方案,如果它们适合您 【参考方案1】:如下使用case..when
:
select case when exam.vl_result is null then 1
else LENGTH(exam.vl_result)
end
from exam;
注意:要查找 clob 的长度,请使用 dbms_lob.getlength
【讨论】:
【参考方案2】:嗯。 . .先运行length()
怎么样:
coalesce(length(exam.vl_result), 1)
【讨论】:
它可以工作,但是还有另一个功能,例如我只有 NVL(clob, ' ') 。不过谢谢!以上是关于具有 CLOB 数据类型的 NVL 函数的主要内容,如果未能解决你的问题,请参考以下文章
ORA-00932: 不一致的数据类型: 预期 - 得到 CLOB - 在 regexp_substr 函数中使用 clob