У меня такой запрос:

select LENGTH(NVL(exam.vl_result,' ')) from exam;

И я получил эту ошибку: ORA-00932: inconsistent datatypes: expected - got CLOB

Столбец vl_result - это CLOB, но в этом случае мне нужно использовать NVL. Есть ли способ использовать NVL с типом данных CLOB? Если нет, то как лучше всего получить аналогичный запрос.

0
Reinaldo Peres 19 Янв 2021 в 14:29

2 ответа

Лучший ответ

Используйте case..when следующим образом:

select case when exam.vl_result is null then 1 
            else LENGTH(exam.vl_result) 
       end 
  from exam;

Примечание. Чтобы узнать длину сгустка, используйте dbms_lob.getlength

1
Popeye 19 Янв 2021 в 11:33

Хммм. . . как насчет того, чтобы сначала запустить length():

coalesce(length(exam.vl_result), 1)
1
Gordon Linoff 19 Янв 2021 в 11:37