Các ngây thơ FOO = empty_clob()
phàn nàn về các loại không tương thích. Tôi đã thử Googling, nhưng (một lần nữa) có rất ít thành công khi tìm kiếm trợ giúp với Oracle. Cảm ơn.Làm cách nào để kiểm tra xem cột có bằng rỗng_clob() trong Oracle không?
Trả lời
Nếu bạn đang cố gắng làm việc so sánh trong PL/SQL, bạn chỉ có thể kiểm tra bình đẳng như giải pháp của Igor không
SQL> ed
Wrote file afiedt.buf
1 DECLARE
2 dummy clob;
3 BEGIN
4 dummy := empty_clob();
5 IF dummy = empty_clob() THEN
6 dbms_output.put_line('Dummy is empty');
7 ELSE
8 dbms_output.put_line('Dummy is not empty');
9 END IF;
10* END;
SQL>/
Dummy is empty
PL/SQL procedure successfully completed.
Nếu bạn đang cố gắng làm điều này trong SQL, bạn cần sử dụng hàm DBMS_LOB.COMPARE. Cột LOB trong bảng thực sự là một trình định vị LOB (tức là con trỏ), vì vậy điều bạn thực sự quan tâm là giá trị được chỉ ra bởi LOB có thể so sánh được với giá trị được chỉ định bởi trình định vị LOB được trả về bởi hàm EMPTY_CLOB().
SQL> desc bar
Name Null? Type
----------------------------------------- -------- ------------------------
FOO CLOB
SQL> insert into bar values ('123');
1 row created.
SQL> insert into bar values(empty_clob());
1 row created.
SQL> insert into bar values(empty_clob());
1 row created.
SQL> ed
Wrote file afiedt.buf
1 select count(*)
2 from bar
3* where dbms_lob.compare(foo, empty_clob()) = 0
SQL>/
COUNT(*)
----------
2
SQL> ed
Wrote file afiedt.buf
1 select count(*)
2 from bar
3* where dbms_lob.compare(foo, empty_clob()) != 0
SQL>/
COUNT(*)
----------
1
một cái gì đó như thế này nên làm việc để khởi tạo:
DECLARE
dummy clob;
dummy2 clob;
BEGIN
dummy := empty_clob();
IF dummy = empty_clob() THEN
dummy2 := dummy;
END IF;
END;
Bạn chỉ muốn kiểm tra một CLOB mà không có bất kỳ chiều dài? Trong khi không chính xác những gì bạn yêu cầu, nó về cơ bản giống nhau?
select *
from bar
where dbms_lob.getlength(foo) = 0;
Đây là thử nghiệm hoàn chỉnh:
SQL> create table bar (foo clob);
Table created.
SQL> insert into bar values (empty_clob());
1 row created.
SQL> select *
2 from bar
3 where dbms_lob.getlength(foo) = 0;
FOO
--------------------------------------------------------------------------------
Đây là giải pháp thay thế hiện tại, nhưng dường như quá phức tạp đối với một tác vụ đơn giản như vậy. –
Một cách đơn giản để kiểm tra CLOBs trống trong sqlplus là để chuyển đổi tất cả các CLOBs để varchar2 (sử dụng chức năng TO_CHAR) trước khi thực hiện kiểm tra:
SELECT *
FROM table1
WHERE TO_CHAR(table1.column1) IS NULL
Đây phải là câu trả lời được chấp nhận –
- 1. Làm cách nào để kiểm tra xem chuỗi có tồn tại hay không trong Oracle 11g?
- 2. làm thế nào để kiểm tra không ràng buộc cột null trong sql oracle?
- 3. Làm cách nào để kiểm tra xem liệu tên cột có tồn tại trong CachedRowSet không?
- 4. Làm cách nào để kiểm tra xem cột có tồn tại trong SQL Server không?
- 5. Cách kiểm tra cột là ảo trong Oracle?
- 6. Làm cách nào để kiểm tra xem cột văn bản SQL Server có trống không?
- 7. Kiểm tra xem có cột nào KHÔNG NULL
- 8. Làm cách nào để kiểm tra xem cột datetime của SQL Server có trống không?
- 9. Làm cách nào để kiểm tra xem cột bảng mysql có còn tồn tại không?
- 10. Làm cách nào để kiểm tra xem chuỗi có giá trị bằng số trong Python không?
- 11. Làm cách nào để kiểm tra xem một DataGridView có chứa cột "x" và cột "x" có hiển thị không?
- 12. Làm cách nào để kiểm tra xem nhiều biến có bằng cùng một giá trị không?
- 13. Làm cách nào để kiểm tra xem ngày nhập liệu có bằng ngày hôm nay không?
- 14. Làm cách nào để kiểm tra xem tệp có tồn tại bằng Emacs Lisp không?
- 15. Làm cách nào để kiểm tra xem một cột có tồn tại trong bảng hay không bằng cách sử dụng câu lệnh SQL
- 16. Làm cách nào để kiểm tra xem cuộc gọi ajax có tồn tại bằng jQuery không?
- 17. Kiểm tra xem DataRow có tồn tại bằng tên cột trong C# không?
- 18. cách kiểm tra xem 2 tệp có bằng .NET không?
- 19. Có cách nào nhanh chóng để kiểm tra xem cột BẤT CỨ là NULL không?
- 20. Cách kiểm tra xem JCheckBox có được kiểm tra không?
- 21. Làm cách nào để kiểm tra xem một hàng có bị khóa để cập nhật không?
- 22. Có cách nào để kiểm tra xem hai phần tử DOM có bằng nhau hay không?
- 23. Làm cách nào để kiểm tra xem Backbone.View có được hiển thị trong DOM không?
- 24. Làm cách nào để kiểm tra xem bản ghi có mới trong Laravel không?
- 25. Làm cách nào để kiểm tra xem bảng có chứa phần tử trong Lua không?
- 26. Làm cách nào để kiểm tra xem JSON có trống trong NodeJS không?
- 27. Làm cách nào để kiểm tra xem một chuỗi có trống trong F # không?
- 28. Làm cách nào để kiểm tra xem không có tùy chọn nào được chọn trong hộp chọn bằng jQuery?
- 29. Truy vấn SQL để kiểm tra xem 40 cột trong bảng có rỗng không
- 30. Làm thế nào để bạn kiểm tra các bản cập nhật trên nhiều bảng trong Oracle?
Bạn có chắc chắn rằng FOO là một CLOB và không phải là BLOB? Bạn sẽ gặp lỗi loại không tương thích so sánh CLOB với BLOB-- bạn cần phải so sánh cột BLOB với empty_blob(). –
FOO chắc chắn là một CLOB, và giá trị mặc định là empty_clob() –