dbms_lob.getlength () so với length () để tìm kích thước đốm màu trong oracle


81

Tôi nhận được kết quả tương tự từ

select length(column_name) from table

như

select dbms_lob.getlength(column_name) from table

Tuy nhiên, các câu trả lời cho câu hỏi này dường như ưu tiên sử dụng dbms_lob.getlength().

Có lợi ích gì khi sử dụng dbms_lob.getlength()không?

Nếu nó thay đổi câu trả lời, tôi biết tất cả các đốm màu đều là ảnh .bmp (chưa từng làm việc với các đốm màu trước đây).

Câu trả lời:


115

lengthdbms_lob.getlengthtrả về số ký tự khi áp dụng cho CLOB (LOB ký tự). Khi được áp dụng cho BLOB (LOB nhị phân), dbms_lob.getlengthsẽ trả về số byte, có thể khác với số ký tự trong tập ký tự nhiều byte.

Vì tài liệu không nêu rõ điều gì sẽ xảy ra khi bạn đăng ký lengthBLOB, tôi khuyên bạn không nên sử dụng nó trong trường hợp đó. Nếu bạn muốn số byte trong BLOB, hãy sử dụng dbms_lob.getlength.


9
Hoặc nếu bạn biết bạn đang làm việc với BLOB chứ không phải CLOB hoặc NCLOB, hãy sử dụng lengthb (BLOB) để lấy số byte trong BLOB.
Janek Bogucki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.