dbms_lob.getlength () vs. length (), um die Blobgröße im Orakel zu ermitteln


80

Ich bekomme die gleichen Ergebnisse von

select length(column_name) from table

wie

select dbms_lob.getlength(column_name) from table

Die Antworten auf diese Frage scheinen jedoch die Verwendung zu begünstigen dbms_lob.getlength().

Gibt es einen Vorteil bei der Verwendung dbms_lob.getlength()?

Wenn sich die Antwort ändert, weiß ich, dass alle Blobs .bmp-Bilder sind (noch nie mit Blobs gearbeitet).

Antworten:


114

lengthund dbms_lob.getlengthgeben Sie die Anzahl der Zeichen zurück, wenn diese auf ein CLOB (Character LOB) angewendet werden . Bei Anwendung auf ein BLOB (Binary LOB) dbms_lob.getlengthwird die Anzahl der Bytes zurückgegeben, die von der Anzahl der Zeichen in einem Mehrbyte-Zeichensatz abweichen kann.

Da in der Dokumentation nicht angegeben ist, was passiert, wenn Sie sich lengthfür ein BLOB bewerben , würde ich davon abraten, es in diesem Fall zu verwenden. Wenn Sie die Anzahl der Bytes in einem BLOB möchten, verwenden Sie dbms_lob.getlength.


9
Oder wenn Sie wissen, dass Sie mit BLOBs arbeiten und nicht mit CLOBs oder NCLOBs, verwenden Sie lengthb (BLOB), um die Anzahl der Bytes im BLOB abzurufen.
Janek Bogucki
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.