2012-02-17 3 views

答えて

14

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 
+0

デモステーション用の正解と+1 – oscilatingcretin

関連する問題