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