dbms_lob.getlength () против length (), чтобы найти размер BLOB-объектов в Oracle

55

Я получаю те же результаты от

select length(column_name) from table

а

select dbms_lob.getlength(column_name) from table

Однако ответы на этот вопрос, похоже, способствует использованию dbms_lob.getlength().

Можно ли использовать dbms_lob.getlength()?

Если он меняет ответ, я знаю, что все капли - это .bmp-изображения (ранее не работавшие с каплими). ​​

Теги:
blob

1 ответ

84
Лучший ответ

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

Поскольку в документации не указано, что происходит, когда вы применяете length в BLOB, я бы посоветовал не использовать его в этом случае. Если вы хотите количество байтов в BLOB, используйте dbms_lob.getlength.

  • 4
    Или, если вы знаете, что работаете с BLOB, а не с CLOB или NCLOB, используйте lengthb (BLOB) для получения количества байтов в BLOB.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню