Sì, non è consentito (questa restrizione non ha effetto su CLOB
s confronto in PL/SQL) per utilizzare operatori di confronto come =
, !=
, <>
e così via nelle istruzioni SQL, quando si tenta di confrontare due CLOB
colonne o CLOB
colonna e un carattere letterale, come fai tu. Per poter eseguire tale confronto nelle istruzioni SQL, dbms_lob .compare()
è possibile utilizzare la funzione.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
Nella query precedente, il 'value'
literal verrà convertito implicitamente nel CLOB
tipo di dati. Per evitare la conversione implicita, il 'value'
literal può essere convertito esplicitamente in CLOB
tipo di dati utilizzando TO_CLOB()
funzione e quindi passare a compare()
funzione:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0