У меня эта же проблема:
Как я могу АВТОМАТИЧЕСКИ обрезать VARCHAR до длины поля таблицы в Derby с помощью SQL?
Чтобы быть конкретным:
СОЗДАТЬ ТАБЛИЦУ A ( B VARCHAR(2) ); ВСТАВИТЬ В ЗНАЧЕНИЯ B ('1234'); вызовет исключение SQLException:
Произошла ошибка усечения при попытке уменьшить VARCHAR '123' до длины 2.
на который уже ответили:
Нет. Вы должны отрубить его после проверки метаданных. Или, если вы не хотите каждый раз проверять метаданные, вы должны синхронизировать свой код и базу данных. Но это не страшно, это обычная практика в валидаторах.
но я сомневаюсь: разве VARCHAR не должен изменять свой размер, чтобы соответствовать данным? Что не так с VARCHAR в apache derby?