2010-03-03 8 views
58

estoy obteniendo los mismos resultados dedbms_lob.getlength() vs longitud() para encontrar el tamaño de gota en el oráculo

select length(column_name) from table 

como

select dbms_lob.getlength(column_name) from table

Sin embargo, las respuestas a this question parecen favorecer el uso de dbms_lob.getlength().

¿Hay algún beneficio al usar dbms_lob.getlength()?

Si cambia la respuesta, sé que todos los blobs son imágenes .bmp (nunca antes había trabajado con blobs).

Respuesta

87

length y dbms_lob.getlength devolver el número de caracteres cuando se aplica a un CLOB (LOB Personaje). Cuando se aplica a un BLOB (LOB binario), dbms_lob.getlength devolverá el número de bytes, que puede diferir del número de caracteres en un conjunto de caracteres de múltiples bytes.

Como la documentación no especifica qué sucede cuando aplica length en un BLOB, le aconsejaría que no lo use en ese caso. Si desea la cantidad de bytes en un BLOB, use dbms_lob.getlength.

+4

O si sabe que está trabajando con BLOB y no con CLOB o NCLOB, use lengthb (BLOB) para obtener el número de bytes en el BLOB. –

Cuestiones relacionadas