dbms_lob.getlength () проти довжини (), щоб знайти розмір BLOB в Oracle


81

Я отримую ті самі результати від

select length(column_name) from table

як

select dbms_lob.getlength(column_name) from table

Однак відповіді на це питання, схоже, сприяють використанню dbms_lob.getlength().

Чи є користь від використання dbms_lob.getlength()?

Якщо це змінить відповідь, я знаю, що всі краплі - це .bmp-зображення (ніколи раніше не працювали з краплями).

Відповіді:


115

lengthі dbms_lob.getlengthповернути кількість символів при застосуванні до CLOB (Символ LOB). При застосуванні до BLOB (двійковий LOB) dbms_lob.getlengthповерне кількість байтів, яка може відрізнятися від кількості символів у багатобайтовому наборі символів.

Оскільки в документації не вказано, що відбувається, коли ви подаєте заявку lengthна BLOB, я б не рекомендував використовувати її в такому випадку. Якщо вам потрібна кількість байтів у BLOB, використовуйте dbms_lob.getlength.


9
Або якщо ви знаєте, що працюєте з BLOB, а не з CLOB або NCLOB, використовуйте lengthb (BLOB), щоб отримати кількість байтів у BLOB.
Янек Богуцький
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.