dbms_lob.getlength()与length()在oracle中查找blob大小

75 sql oracle blob

我得到了相同的结果

select length(column_name) from table
Run Code Online (Sandbox Code Playgroud)

select dbms_lob.getlength(column_name) from table

但是,这个问题的答案 似乎更倾向于使用dbms_lob.getlength().

使用有什么好处dbms_lob.getlength()吗?

如果它改变了答案,我知道所有的blob都是.bmp图像(之前从未使用过blob).

Vin*_*rat 106

lengthdbms_lob.getlength在应用于CLOB(字符LOB)时返回字符数.当应用于BLOB(二进制LOB)时,dbms_lob.getlength将返回字节数,这可能与多字节字符集中的字符数不同.

由于文档没有说明length在BLOB上申请时会发生什么,我建议不要在这种情况下使用它.如果您想要BLOB中的字节数,请使用dbms_lob.getlength.

  • 或者如果您知道您正在使用BLOB而不是CLOB或NCLOB使用lengthb(BLOB)来获取BLOB中的字节数. (6认同)