Столкновение с типом операнда: varbinary несовместим с текстом - PullRequest
1 голос
/ 03 февраля 2012

У меня есть элемент управления загрузкой файлов, с помощью которого пользователь может загружать файл изображения в таблицу базы данных.

В настоящее время я использую в СУБД 1) Postgresql и 2) SQL-сервер

вВ столбце таблицы базы данных postgres для файла я использую bytea типа данных в столбце таблицы базы данных сервера sql для файла. В качестве текста я использую тип данных

Это мой метод

public void uploadRentProofDeclaration(final MultipartFile declarationForm,
        final int rentProofInfoId, int year) {

    String updateSql = "update plit_landlordinfo" + year
            + " set filename=?,declarationform=? where cid=?";
    getJdbcTemplate().execute(updateSql, new PreparedStatementCallback() {
        public Object doInPreparedStatement(
                final PreparedStatement pSstatement) throws SQLException,
                DataAccessException {
            pSstatement.setString(1, declarationForm.getOriginalFilename());

            try {
                pSstatement.setBinaryStream(2, new ByteArrayInputStream(
                        declarationForm.getBytes()), declarationForm
                        .getBytes().length);
            } catch (IOException e) {
                e.printStackTrace();
            }
            pSstatement.setInt(3, rentProofInfoId);

            pSstatement.execute();
            return null;
        }
    });
}

Этот кодотлично работает с postgresql, а также с oracle, но когда я пытаюсь загрузить файл изображения на сервер sql, я получаю эту ошибку.

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [update plit_landlordinfo2011 set filename=?,declarationform=? where cid=?]; Operand type clash: varbinary is incompatible with text; nested exception is java.sql.SQLException: Operand type clash: varbinary is incompatible with text

может кто-нибудь мне помочь, если я делаю что-то не так и чторешение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...