Ja, det er ikke tilladt (denne begrænsning påvirker ikke CLOB
s sammenligning i PL/SQL) for at bruge sammenligningsoperatorer som =
, !=
, <> og så videre i SQL-sætninger, når du prøver at sammenligne to
CLOB
kolonner eller CLOB
kolonne og et bogstav, som du gør. For at kunne foretage en sådan sammenligning i SQL-sætninger, dbms_lob .compare()
funktion kan bruges.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
I ovenstående forespørgsel, 'værdi'
literal vil implicit blive konverteret til CLOB
datatype. For at undgå implicit konvertering, 'værdi'
literal kan eksplicit konverteres til CLOB
datatype ved hjælp af TO_CLOB()
funktion og derefter gå ind i compare()
funktion:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0