Да, не е разрешено (това ограничение не засяга CLOB
s сравнение в PL/SQL), за да използвате оператори за сравнение като =
, !=
, <>код> и така нататък в SQL изрази, когато се опитвате да сравните два
CLOB
колони или CLOB
колона и символен литерал, както правите вие. За да можете да направите такова сравнение в SQL изрази, dbms_lob .compare()
може да се използва.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
В горната заявка 'value'
литералът ще бъде имплицитно преобразуван в CLOB
тип данни. За да избегнете имплицитно преобразуване, 'value'
литералът може да бъде изрично преобразуван в CLOB
тип данни с помощта на TO_CLOB()
и след това преминете към compare()
функция:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0