Ya, itu tidak diperbolehkan (pembatasan ini tidak mempengaruhi CLOB
s perbandingan dalam PL/SQL) untuk menggunakan operator perbandingan seperti =
, !=
, <>
dan seterusnya dalam pernyataan SQL, ketika mencoba membandingkan dua CLOB
kolom atau CLOB
kolom dan karakter literal, seperti yang Anda lakukan. Untuk dapat melakukan perbandingan seperti itu dalam pernyataan SQL, dbms_lob .bandingkan()
fungsi dapat digunakan.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
Dalam kueri di atas, 'value'
literal akan secara implisit dikonversi ke CLOB
tipe data. Untuk menghindari konversi implisit, 'value'
literal dapat secara eksplisit dikonversi ke CLOB
tipe data menggunakan TO_CLOB()
fungsi dan kemudian meneruskan ke compare()
fungsi:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0