Oui, ce n'est pas autorisé (cette restriction n'affecte pas CLOB
s comparaison en PL/SQL) pour utiliser des opérateurs de comparaison comme =
, !=
, <>
et ainsi de suite dans les instructions SQL, en essayant de comparer deux CLOB
colonnes ou CLOB
colonne et un caractère littéral, comme vous le faites. Pour pouvoir effectuer une telle comparaison dans les instructions SQL, dbms_lob .comparer()
fonction peut être utilisée.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
Dans la requête ci-dessus, le 'value'
littéral sera implicitement converti en CLOB
type de données. Pour éviter une conversion implicite, la valeur 'value'
littéral peut être explicitement converti en CLOB
type de données utilisant TO_CLOB()
fonction puis passer à la compare()
fonction :
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0