@ericclauber,
É mais fácil de entender como funciona o armazenamento interno de um tipo de dado VARCHAR2 pq cada caractere (não especial) corresponde a 1 byte. No caso do NUMBER, a correspondência pode ser de menos bytes para o total de números, pois o Oracle consegue otimizar o armazenamento interno. Execute por exemplo o sql abaixo (necessário ter o schema HR instalado) e veja que o número 100, por exemplo, é armazenado em apenas 2 bytes, enquanto que o 101..199, são armazenados em 3 bytes.
select dump(employee_id) , employee_id from hr.employees;
[]s
Fábio Prado
http://www.fabioprado.net