Столбец
A NUMBER(1)
займет столько места, сколько требуется для хранения 1-значного числа. Вероятно, это будет больше 1 байта (для отрицательных чисел потребуется 3 байта, для 0 требуется 1 байт, для чисел 1-9 требуется 2 байта)
SQL> create table foo( col1 number(1) );
Table created.
SQL> insert into foo values( 1 );
1 row created.
SQL> insert into foo values( 9 );
1 row created.
SQL> insert into foo values( -7 );
1 row created.
SQL> select vsize(col1), col1 from foo;
VSIZE(COL1) COL1
----------- ----------
2 1
2 9
3 -7
Таблица с столбцом VARCHAR2(1 BYTE)
, с другой стороны, будет использовать не более 1 байта на строку хранения
SQL> create table bar( col1 varchar2(1) );
Table created.
SQL> insert into bar values( 'Y' );
1 row created.
SQL> insert into bar values( 'N' );
1 row created.
SQL> select vsize(col1), col1 from bar;
VSIZE(COL1) C
----------- -
1 Y
1 N