2012-02-17 32 views

Trả lời

14

Cột NUMBER(1) sẽ mất nhiều dung lượng cần thiết để lưu trữ số có 1 chữ số. Đó là khả năng là hơn 1 byte (số âm sẽ yêu cầu 3 byte, 0 đòi hỏi 1 byte, số 1-9 yêu cầu 2 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 

Một bảng với một cột VARCHAR2(1 BYTE), mặt khác , sẽ sử dụng tối đa 1 byte cho mỗi hàng lưu trữ

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

Câu trả lời hay và 1 cho deomonstration – oscilatingcretin

Các vấn đề liên quan