Sim, não é permitido (esta restrição não afeta
CLOB
s em PL/SQL) para usar operadores de comparação como =
, !=
, <>
e assim por diante em instruções SQL, ao tentar comparar dois CLOB
colunas ou CLOB
coluna e um caractere literal, como você faz. Para poder fazer essa comparação em instruções SQL, dbms_lob .compare()
função pode ser usada. select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
Na consulta acima, o
'value'
literal será convertido implicitamente para o CLOB
tipo de dados. Para evitar a conversão implícita, o 'value'
literal pode ser explicitamente convertido para o CLOB
tipo de dados usando TO_CLOB()
função e, em seguida, passar para o compare()
função: select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0