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


80

我从中得到相同的结果

select length(column_name) from table

select dbms_lob.getlength(column_name) from table

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

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

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

Answers:


114

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

由于文档中没有指定在您申请lengthBLOB时会发生什么,因此建议您不要在这种情况下使用它。如果需要BLOB中的字节数,请使用dbms_lob.getlength


9
或者,如果您知道您使用的是BLOB,而不是CLOB或NCLOB,则使用lengthb(BLOB)来获取BLOB中的字节数。
Janek Bogucki 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.