I’m having this same problem:
How can I truncate a VARCHAR to the
table field length AUTOMATICALLY in
Derby using SQL?To be specific:
CREATE TABLE A ( B VARCHAR(2) );
INSERT INTO A B VALUES (‘1234’); would
throw a SQLException:A truncation error was encountered
trying to shrink VARCHAR ‘123’ to
length 2.
that is already answered:
No. You should chop it off after
checking the meta-data. Or if you
don’t wanna check the meta-data
everytime, then you must keep both
your code and database in sync. But
thats not a big deal, its a usual
practice in validators.
but my doubt is: isn’t VARCHAR suppose to variate its size to fit the data? What’s wrong with apache derby’s VARCHAR?
The VARCHAR type is variable length, but the number you supply in its definition is the maximum number of characters you’re allowing it to have.
VARCHAR(2)will stores values that are 0-2 characters, as opposed toCHAR(2)which will store 2 characters regardless of what data it actually has.Side Note: Once you get to 255 characters, consider using the
TEXTtype instead.