Я сделал быструю проверку, выбрав BLOB из таблицы, а затем LENGTH (BLOB) и DBMS_LOB.GETLENGTH (BLOB).
При выборе самого BLOB я получил 44 последовательных получения. Когда я выбрал длину (любым способом), я получил 7 последовательных приёмов.
Исходя из этого, когда я получаю длину, он не получает весь BLOB-объект и не вычисляет длину. Разумно предположить, что длина, хранящаяся в начале BLOB-объекта (как и длина значения VARCHAR2, хранится), и это используется непосредственно.
Таким образом, не должно быть больших накладных расходов при получении длины, а не при ее хранении. Это также уменьшает вероятность несоответствия.