Tak, to niedozwolone (to ograniczenie nie dotyczy CLOB s porównania w PL/SQL), aby używać operatorów porównania, takich jak = , != , <> i tak dalej w instrukcjach SQL, gdy próbujesz porównać dwa CLOB kolumny lub CLOB kolumna i literał znakowy, tak jak ty. Aby móc dokonać takiego porównania w instrukcjach SQL, dbms_lob .porównaj()
można użyć funkcji.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
W powyższym zapytaniu 'wartość' literał zostanie niejawnie przekonwertowany na CLOB typ danych. Aby uniknąć niejawnej konwersji, 'wartość' literał może być jawnie przekonwertowany na CLOB typ danych przy użyciu TO_CLOB() funkcji, a następnie przejdź do compare() funkcja:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0