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