2012-02-17 44 views

回答

14

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

好的答案和+1的desenstration – oscilatingcretin 2012-02-20 12:22:31

相關問題