Ja, het is niet toegestaan (deze beperking heeft geen invloed op CLOB
s vergelijking in PL/SQL) om vergelijkingsoperatoren zoals =
te gebruiken , !=
, <>
enzovoort in SQL-instructies, wanneer u twee CLOB
. probeert te vergelijken kolommen of CLOB
kolom en een letter letterlijk, zoals jij. Om een dergelijke vergelijking in SQL-statements te kunnen maken, dbms_lob .compare()
functie kan worden gebruikt.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
In de bovenstaande zoekopdracht is de 'value'
letterlijk wordt impliciet geconverteerd naar de CLOB
gegevenstype.Om impliciete conversie te voorkomen, moet de 'value'
letterlijk kan expliciet worden geconverteerd naar de CLOB
gegevenstype met behulp van TO_CLOB()
functie en geef dan door aan de compare()
functie:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0