Oracle 9i, PreparedStatement.setString больше 2000 символов
От: vsb Казахстан  
Дата: 26.06.18 13:54
Оценка:
Имеется Oracle 9i, в нём таблица с полем, скажем, в 3000 длиной. На сервере кодировка cp1251, то бишь в поле помещается 3000 русских букв. Однако если пытаться вставить значение в это поле через стандартный PreparedStatement.setString прям из драйвера вылетает ошибка. Он сначала конвертирует строку в UTF-8, получается длина 6000, а драйвер больше 4000 не пропускает (и то, что на сервере она опять ужмётся в 3000 его не волнует). В принципе в документации это описано, но как этого избегать — не описано. Пока что нашёл простой способ — тупо вставлять строку в запрос в лучших традициях PHP ("insert into t values ('" + str + "')"). Можно ли придумать ещё что-нибудь?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.