2012-02-17 4 views

Respuesta

14

Una columna NUMBER(1) ocupará el espacio que requiera para almacenar un número de 1 dígito. Esto es probable que sea más de 1 byte (los números negativos requerirá 3 bytes, un 0 requiere 1 byte, los números 1-9 requieren 2 bytes)

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 

Una tabla con una columna VARCHAR2(1 BYTE), por otra parte , utilizará como máximo 1 byte por fila de almacenamiento

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

Buena respuesta y +1 para la deomonstración – oscilatingcretin

Cuestiones relacionadas