web-dev-qa-db-ja.com

OracleでBLOBサイズを見つけるためのdbms_lob.getlength()とlength()

私は同じ結果を得ています

select length(column_name) from table

なので

select dbms_lob.getlength(column_name) from table

ただし、 この質問 への回答は、dbms_lob.getlength()の使用を支持しているようです。

dbms_lob.getlength()を使用する利点はありますか?

答えが変わった場合、すべてのBLOBが.bmp画像であることがわかります(BLOBを使用したことはありません)。

70
user285498

length および dbms_lob.getlength は、CLOB(文字LOB)に適用されたときに文字数を返します。 BLOB(Binary LOB)に適用すると、dbms_lob.getlengthはバイト数を返しますが、これはマルチバイト文字セットの文字数と異なる場合があります。

ドキュメントでは、lengthをBLOBに適用すると何が起こるかを指定していないため、その場合は使用しないことをお勧めします。 BLOBのバイト数が必要な場合は、dbms_lob.getlengthを使用します。

102
Vincent Malgrat