web-dev-qa-db-fra.com

dbms_lob.getlength () et length () pour trouver la taille du blob dans Oracle

Je reçois les mêmes résultats de

select length(column_name) from table

comme

select dbms_lob.getlength(column_name) from table

Cependant, les réponses à cette question semblent préférer utiliser dbms_lob.getlength().

Y a-t-il un avantage à utiliser dbms_lob.getlength()?

Si cela change la réponse, je sais que tous les blobs sont des images .bmp (jamais travaillé avec des blobs auparavant).

70
user285498

length et dbms_lob.getlength renvoie le nombre de caractères appliqué à un [~ # ~] clob [~ # ~] (caractère LOB). Appliqué à un blob [~ # ~] [~ # ~] (LOB binaire), dbms_lob.getlength renverra le nombre d'octets, qui peut différer du nombre de caractères d'un jeu de caractères multi-octets.

Comme la documentation ne spécifie pas ce qui se passe lorsque vous appliquez length sur un BLOB, je vous déconseille de l'utiliser dans ce cas. Si vous voulez le nombre d'octets dans un BLOB, utilisez dbms_lob.getlength.

102
Vincent Malgrat