6
私が取り組んでいることの指標として役立つ数値の列が必要ですが、レコードごとに1バイト以上は使用したくありません。 NUMBER(1)を使用すると、これは私の要件を満たしますか?Oracle 11g:1バイトしか格納しない数値列を作成できますか?
私が取り組んでいることの指標として役立つ数値の列が必要ですが、レコードごとに1バイト以上は使用したくありません。 NUMBER(1)を使用すると、これは私の要件を満たしますか?Oracle 11g:1バイトしか格納しない数値列を作成できますか?
NUMBER(1)
カラムは、1桁の数字を格納するのに必要なスペースを占有します。すなわち、一方、VARCHAR2(1 BYTE)
カラムと
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
テーブル(0は1バイトを必要とし、番号1~9が2つのバイトを必要とし、負の数は、3つのバイトを必要とする)より1バイトである可能性が高いですストレージの行あたり最大で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
デモステーション用の正解と+1 – oscilatingcretin