Да, тип данных числа переменной длины существует, он называется NUMBER .
Oracle хранит точность (значащие цифры) и масштаб отдельно, используя минимальное пространство, необходимое для точности (масштаб занимает один байт).
NUMBER (x, y) является подтипом NUMBER, они хранятся физически так же, как обычный NUMBER, у них просто есть дополнительные ограничения.
AFAIK, эквивалента CHAR нетдля чисел.
Вы можете увидеть, как Oracle хранит данные внутри, с помощью функции DUMP :
SQL> select dump(1), dump(12345), dump(123456789) from dual;
DUMP(1) DUMP(12345) DUMP(123456789)
------------------ ------------------------ ------------------------------
Typ=2 Len=2: 193,2 Typ=2 Len=4: 195,2,24,46 Typ=2 Len=6: 197,2,24,46,68,90
Как видите, длина данных увеличивается с точностью.