В Oracle выходные данные команды DUMP
будут содержать длину (в байтах) фактического значения.Затем вы можете использовать строковые функции для извлечения длины из выходных данных.Например,
select dump(3.141592),
regexp_substr(dump(3.141592),'Len=([0-9]+)',1,1,'i',1) byte_length
from dual
+-----------------------------+-------------+
| DUMP(3.141592) | BYTE_LENGTH |
+-----------------------------+-------------+
| Typ=2 Len=5: 193,4,15,16,93 | 5 |
+-----------------------------+-------------+
Вы должны сделать это для каждого столбца и добавить их.
Также помните, что Oracle вычисляет (или оценивает)) средняя длина строки данных в таблице, когда она вычисляет (или оценивает) статистику по этой таблице.Результаты идут в DBA_TABLES.AVG_ROW_LEN
.