Мне нужно сохранить документ в кодировке base64 в базе данных Sybase с помощью хранимой процедуры. Я использую драйвер JTDS.
Пока я не пытаюсь сохранить свой PDF-документ, все в порядке. Однако, как только я пытаюсь найти закодированную строку. Я получаю следующую ошибку
java.sql.SQLException: Sybase не поддерживает параметры char > 255 байт.
Вот код
conn.setAutoCommit(false);
cs = conn.prepareCall("{call sp_save_pdf (?,?,?,?)}");
cs.setString(++i, id);
cs.setString(++i, source);
cs.setString(++i, base64EncodedDocument);
cs.registerOutParameter(++i, java.sql.Types.INTEGER);
cs.execute();
Когда разработчики Sybase выполняют эту процедуру, но используют драйвер JConnect. Вот мой вопрос: драйвер JTDS не поддерживает использование длинных строк, и мне нужно использовать JConnect, или я что-то пропустил в своем коде?
Спасибо
setString(int, String)
, хотя я боюсь, что это проблема с хранимой процедурой. ПопробуйтеsetCharacterStream(++i, new StringReader(base64));
- person Joop Eggen   schedule 11.08.2016