Menci Lucio Ответов: 0

DB2 игнорирует ошибки переменной длины


Привет,

Я написал много параметризованных запросов, где параметры вставляются пользователем. Если пользователь вставляет строки длиннее поля, на которое ссылается параметризованное значение, DB2 выдает ошибку SQL0302N.

Есть ли способ избежать этого?

Пример:
Create Table Foo (Code Char(3) Not Null, Descr Varchar(50));

PreparedStatement ps = new PreparedStatement(
     "Select * From Foo Where Code = ? Or Descr = ?");
ps.setString(1, txtInput.value);
ps.setString(1, txtInput.value);

Если параметризованное значение больше 3 символов, то первый параметр вызывает исключение.

Что я уже пробовал:

Использование «= TRIM(?)"или" нравится ?» вместо«= ? " позволяет избежать ошибки.
Но я бы хотел исправить это, изменив строку подключения. Таким образом, я буду уверен, что ошибка больше не возникнет, даже если я забуду исправить некоторые запросы.

0 Ответов