Как вставить BLOB-файл в процедуру Oracle? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть столбец с именем DOC_FILE и типом BLOB в моей базе данных Oracle. И в моем классе Java я объявил его как закрытый байт [] docFile; У меня есть класс, который объявлен как:

public class LetterDoc {

    private BigDecimal letterNo;
    private BigDecimal docId;
    private byte[] docFile;
    private String entryBy;
    private String rStatus;
    private String othersDescription;
    private BigDecimal seqNo;

//omitted getters and setters 
}

Здесь у меня есть private byte[] docFile;, который объявлен для вставки Image / PDF в базу данных Oracle.Итак, в моем классе DaoImpl метод обновления в Oracle Database:

    @Repository
    public class LetterDocDaoImpl implements LetterDocDao { 

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
        public void updateLetterDoc(LetterDoc letterDoc) {
            SimpleJdbcCall updateStausAfterSubmit = new SimpleJdbcCall(jdbcTemplate).
                    withProcedureName("PCPR_EDIT_LETTER_DOC");
            Map<String, Object> inParamMap = new HashMap<String, Object>();

            inParamMap.put("P_LETTER_NO",letterDoc.getLetterNo());
            inParamMap.put("P_DOC_ID", letterDoc.getDocId());
            inParamMap.put("P_DOC_FILE",letterDoc.getDocFile());
            inParamMap.put("P_SEQ_NO",letterDoc.getSeqNo());
            inParamMap.put("P_OTHERS_DESCRIPTION",letterDoc.getOthersDescription());
        }

     }

Я отправил файл imageFile, используя base64 Encoding (я не вставил все эти коды Base64, потому что он тожебольшой):

{  
   docId:1,
   letterNo:1,
   seqNo:1,
 docFile:iVBORw0KGgoAAAANSUhEUgAAAsQAAAHgCAYAAACigHs+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7H0FgB1F1vW4W5xAiI5PJglBFocFls
}

Итак, при попытке вставить BLOB-файл возникает ошибка inParamMap.put ("P_DOC_FILE", letterDoc.getDocFile ()); , но этовыдает ошибку как:

SEVERE: Servlet.service () для сервлета [dispatcher] в контексте с исключением пути пути [Ошибка обработки запроса;вложенным исключением является org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback;исключение без категории для SQL [{call PCPR_EDIT_LETTER_DOC (?,?,?,?,?)}];Состояние SQL [99999];код ошибки [17004];Неверный тип столбца;вложенное исключение: java.sql.SQLException: недопустимый тип столбца] с основной причиной java.sql.SQLException: недопустимый тип столбца

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