Ja, es ist nicht erlaubt (diese Einschränkung betrifft nicht CLOB
s-Vergleich in PL/SQL), um Vergleichsoperatoren wie =
zu verwenden , !=
, <>
und so weiter in SQL-Anweisungen, wenn versucht wird, zwei CLOB
zu vergleichen Spalten oder CLOB
Spalte und ein Zeichenliteral, wie Sie es tun. Um einen solchen Vergleich in SQL-Anweisungen durchführen zu können, dbms_lob .compare()
Funktion verwendet werden.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
In der obigen Abfrage der 'value'
Literal wird implizit in CLOB
umgewandelt Datentyp. Um eine implizite Konvertierung zu vermeiden, muss der 'value'
Literal kann explizit in CLOB
umgewandelt werden Datentyp mit TO_CLOB()
-Funktion und übergeben Sie sie dann an compare()
Funktion:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0