Ja, det är inte tillåtet (denna begränsning påverkar inte CLOB
s jämförelse i PL/SQL) för att använda jämförelseoperatorer som =
, !=
, <> och så vidare i SQL-satser, när man försöker jämföra två
CLOB
kolumner eller CLOB
kolumn och en bokstavlig karaktär, som du gör. För att kunna göra en sådan jämförelse i SQL-satser, dbms_lob .compare()
funktionen kan användas.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
I ovanstående fråga, 'värde'
literal kommer implicit att konverteras till CLOB
datatyp. För att undvika implicit konvertering, 'värde'
literal kan explicit konverteras till CLOB
datatyp med TO_CLOB()
funktion och skicka sedan in till compare()
funktion:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0