Background Image

FORUM

조회 수 34640 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit
CUBRID Ver.
최신
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, mybatis

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------ 

안녕하세요.


큐브리드로 DB를 공부하고 있는 학생입니다.


Mybatis를 이용하여 이미지를 blob로 DB에 저장하고 싶은데 


Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 

### Error updating database.  Cause: cubrid.jdbc.driver.CUBRIDException: CASID[1],CASPID[5656],SESSION[301],URL[jdbc:cubrid:localhost:33000:test:dba:********:?charset=utf-8]

Semantic: Cannot coerce host var to type blob. 

### The error may involve .insert-Inline

### The error occurred while setting parameters

### SQL: insert into test_blob values (?, ?)

### Cause: cubrid.jdbc.driver.CUBRIDException: CASID[1],CASPID[5656],SESSION[301],URL[jdbc:cubrid:localhost:33000:test:dba:********:?charset=utf-8]

Semantic: Cannot coerce host var to type blob. 

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:150)

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:137)


이런 종류의 에러 메시지가 나오는데 해결책을 못 찾겠어서 글을 올립니다.


mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="">

<insert id="insert" parameterType="mybatis.BlobRecord">

    insert into test_blob values (#{id}, #{blobs})

  </insert>

</mapper>



BlobReord.java

public class BlobRecord {

    private int id;

    private byte[] blobs;


    public BlobRecord(int id, byte[] blob) {

        super();

        this.id = id;

        this.blobs = blob;

    }


    public BlobRecord(int id, Byte[] blob) {

        super();

        this.id = id;

        final byte[] newBytes = new byte[blob.length];

        for (int i = 0; i < blob.length; i++) {

          Byte b = blob[i];

          newBytes[i] = b;

        }

        this.blobs = newBytes;

    }


    public int getId() {

        return id;

    }


    public byte[] getBlobs() {

        return blobs;

    }

}


바이트가 Blob로 안바뀌어서 그러는 건지.. 알려주시면 감사하겠습니다!

  • ?
    이용미 2013.08.07 02:39

    안녕하세요. 답변이 늦어져 죄송합니다.

    [Cannot coerce host var to type blob]이라는 오류 메시지는 insert 시에 입력되는 데이터 타입과 입력되는 컬럼의 데이터 타입이 매칭되지 않아 발생합니다.

    아래 링크된 메뉴얼의 BLOB/CLOB 사용 부분, 특히 LOB 데이터 저장 부분을 확인해 보시면 도움이 될 것 같습니다.

    JDBC BLOB/CLOB 사용 : http://www.cubrid.com/manual/91/api/jdbc.html#blob-clob

    감사합니다.



  1. No Image notice by admin 2024/04/23 by admin
    Views 115 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. 설치후 설치 경로 변경

  4. 큐브리드 매니져에서 sql 질의시 오류발생하면 한글메시지가 깨져보입니다.

  5. Navicat 에서 사용할수 있나요?

  6. 임시테이블 지원관련 문의입니다.

  7. 테이블 및 컬럼 코멘트 등록을 위한 테이블 스키마 정보 문의

  8. db 링크 관련하여 문의드립니다.

  9. 데이터 이관시 소유자 변경 가능한가요???

  10. VB또는 파워빌더에서 Blob 사용법 문의

  11. 코드셋 호환문제

  12. CUBRID_CHARSET

  13. -74 오류 조치 방법

  14. HA를 이용한 DB 서버 복제에 대해서 질문합니다...

  15. alter 시 오류 (화면캡쳐)

  16. alter 시 오류 메세지

  17. 테이블 alter 시 오류 메세지

  18. HA 로드 밸런싱 관련

  19. 테이블을 리스트 분할 후 count(*) 쿼리가 느립니다.

  20. 큰 자리수 연산 문의

  21. rownum vs limit

  22. lock_timeout_in_secs 값이 적용이 안됩니다.

Board Pagination Prev 1 ... 117 118 119 120 121 122 123 124 125 126 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales