I was just trying to create a simple table, and I notice that CSQL does not seem to respect the size I specify in VARCHAR. Here's my little test program (testVarchar.sql): create table TEST_VARCHAR ( SIMPLE_ID VARCHAR(4) NOT NULL); insert into TEST_VARCHAR values ('2020'); insert into TEST_VARCHAR values ('2004'); insert into TEST_VARCHAR values ('2005'); insert into TEST_VARCHAR values ('2006'); insert into TEST_VARCHAR values ('2007'); insert into TEST_VARCHAR values ('2008'); insert into TEST_VARCHAR values ('2009'); insert into TEST_VARCHAR values ('3001'); insert into TEST_VARCHAR values ('2615'); insert into TEST_VARCHAR values ('2616'); insert into TEST_VARCHAR values ('2643'); insert into TEST_VARCHAR values ('3090'); When I execute csql -s testVarchar.sql, it inserts all the rows without complaining (I haven't declared SIMPLE_ID as a primary key here ... when I do, it complains about unique key violation). Now, when I list the contents of the table, here's the output: CSQL>select * from TEST_VARCHAR; --------------------------------------------------------- TEST_VARCHAR.SIMPLE_ID --------------------------------------------------------- 202 200 200 200 200 200 200 300 261 261 264 309 CSQL>quit You will notice that for SIMPLE_ID, each is only 3 characters instead of the 4 chars specified in my CREATE statement. When I need to specify a particular size for a primary key, this obviously leads to difficulties unless I make my declaration larger by one character than what I actually need.