2013-11-15 3 views
1

У меня есть приложение, которое получает данные из Интернета и вставляет его в базу данных H2. В редких случаях вставляемое значение больше размера столбца SQL. В этих случаях я хотел бы автоматически обрезать конец значения (по крайней мере для строк). Меня не волнует потеря данных, поскольку она касается только информационных значений, отображаемых конечному пользователю.Автоматически обрезать строку, если она слишком длинна при вставке/обновлении


- Для MySQL я нашел параметр STRICT (Automatically trimming length of string submitted to MySQL). Есть ли эквивалентный параметр для h2, который я не нашел?
- Я бы хотел избежать проверки длины строки в коде, поскольку она потенциально затрагивает многие поля.

система:
- OS: Win/OSX/Linux
- DB: h2 внедренные 1.3.173 (может быть обновлен до последней)

ответ

2

Вы можете сделать обертку над PreaparedStatement и укоротить длинные строки там

... 

public void setString(int i, String str) { 
    str = str.length() > max ? str.substring(0, max) : str; 
    target.setString(str, i); 
} 
+0

Это будет работать, но я бы хотел, чтобы это не было сделано на стороне java: 1) максимальная длина обычно соблюдается (из 1300 запросов 1 возвращает длинную строку) и 2) ~ 40 полей потребовали бы эту проверку – Philippe

+0

Я вижу, вижу мое исправленное Ответ –

+0

Как кажется, не существует волшебного переключателя h2, я пойду с вашим предложением. Благодарю. – Philippe

Смежные вопросы