Oracle 11g: могу ли я создать столбец чисел, в котором хранится только 1 байт?
Мне нужен столбец чисел, чтобы служить индикатором для чего-то, над чем я работаю, но я не хочу, чтобы он занимал больше одного байта на запись. Если я использую номер(1), удовлетворит ли это мое требование?
1 ответов
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