When I run the following script :
create table tbl1 (
col1 varchar2(30),
col2 varchar2(50),
col3 number(4,2)
);
desc tbl1;
alter table tbl1 modify (col1 varchar2(35));
desc tbl1;
drop table tbl1;
Here is the output I get :
Table created.
TABLE tbl1
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 VARCHAR2(120)
COL2 VARCHAR2(200)
COL3 NUMBER(4,2)
Table altered.
TABLE tbl1
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 VARCHAR2(140)
COL2 VARCHAR2(200)
COL3 NUMBER(4,2)
Table dropped.
Can somebody explain me why the column lengths for varchar2 would be 4 times larger than they should ?
Best Answer
My guess would be a combination of your NLS_LENGTH_SEMANTICS = 'CHAR' system parameter and a character set defined that is 4 bytes per character.
Can you check on what your NLS settings are?