Có, nó không được phép (hạn chế này không ảnh hưởng đến CLOB
s so sánh trong PL / SQL) để sử dụng các toán tử so sánh như =
, !=
, <>
và tương tự như vậy trong các câu lệnh SQL, khi cố gắng so sánh hai CLOB
cột hoặc CLOB
và một ký tự theo nghĩa đen, giống như bạn làm. Để có thể thực hiện so sánh như vậy trong các câu lệnh SQL, hãy dbms_lob .compare ()
có thể được sử dụng.
select *
from aTable
where dbms_lob.compare(aClobColumn, 'value') = 0
Trong truy vấn trên, 'value'
nghĩa đen sẽ được chuyển đổi hoàn toàn thành CLOB
kiểu dữ liệu. Để tránh chuyển đổi ngầm, 'value'
chữ có thể được chuyển đổi rõ ràng thành CLOB
kiểu dữ liệu sử dụng TO_CLOB()
và sau đó chuyển vào compare()
chức năng:
select *
from aTable
where dbms_lob.compare(aClobColumn, to_clob('value')) = 0