Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

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


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Linux 64bit
CUBRID Ver.
11.0
CUBRID TOOL Ver.
N/A
응용 환경(API)
JDBC


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


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

안녕하십니까.

 

Cubrid 데이터 타입 중에 SET 타입이 있습니다.

JDBC로 SET 데이터를 INSERT/SELECT 하려고 하는데,

INSERT 시 PreparedStatement에 사용할 setXXX 메소드와 바인드할 값의 데이터타입, 

SELECT 시 ResultSet에서 사용할 getXXX메소드와 반환 데이터타입은 각각 무엇인가요?

 

감사합니다.

 

  • ?
    엄기호 2023.01.04 13:39
    큐브리드를 이용해주셔서 감사합니다.

    매뉴얼을 참조 하세요.
    https://www.cubrid.org/manual/ko/11.2/sql/function/index.html
    https://www.cubrid.org/manual/ko/11.2/api/jdbc.html#blob-clob
    https://www.cubrid.org/manual/ko/11.2/sql/function/lob_fn.html#bit-to-blob
  • ?
    새옹지마 2023.01.04 22:58

    힌트를 얻어서 setObject를 사용했더니 동작하네요.

    문제는 컬렉션 컬럼이 한 개일때만 정상 동작하고, 2개 이상에 대해 setObject를 하면 JDBC Driver 가 죽는군요.

    DDL
    ======
    create table DATA_TYPE_TEST_1 (
    ...
    DT_SET SET(char(1)) comment 'SET',
    DT_MULTISET MULTISET(CHAR(1)) comment 'MULTISET',
    DT_LIST LIST (CHAR(1)) comment 'LIST',
    ...
    );

    Java
    =====
    String SQL = "INSERT INTO DATA_TYPE_TEST_1 (\n"
    + " ... , DT_SET, DT_MULTISET, DT_LIST )\n"
    + "VALUES(... , ?,?,?)";

    int idx = 1 ;
    ...
    String[] set = new String[] {"c","c","c","b","b","a"};
    stmt.setObject(idx++, set);
    String[] multiSet = new String[] {"c","c","c","b","b","a"};
    stmt.setObject(idx++, multiSet);
    stmt.setObject(idx++, set);

    컬렉션 컬럼 3개 중에서 1개만 insert문에 넣고 실행하면 정상 동작하는데,
    위의 코드처럼 2개 이상을 set 하면 Communication error가 납니다.

    cubrid.jdbc.driver.CUBRIDException: Communication error[CAS INFO-192.168.100.4:33002,2,30],[SESSION-44],[URL-jdbc:cubrid:192.168.100.4:33002:SHDB:user:********:?charset=UTF-8].

    버그일까요?
    메지지로 봐서는 서버 측 프로세스가 죽는 것 같군요.

     

    ------- 추가 ------

    CUBRIDPreparedStatement.setCollection도 사용해 봤는데, 똑같이 죽네요.

    컬럼 한 개만 사용 가능.  ㅎ

  • ?
    새옹지마 2023.01.21 16:10
    몇 번 테스트를 더 해 봤는데,
    결론은 "Cubrid JDBC의 setXXX 메소드로는 Collection 값을 bind할 수 없다" 네요.
    2개 이상의 Collection 컬럼을 저장하면 서버 프로세스가 죽는 것은 항상이고,
    CUBRIDPreparedStatement.setCollection로 바인드하면 바인드되는 Array의 값과 갯수에 관계 없이 SET/MULTISET/LIST 모두 항상
    [[NULL], [NULL]]
    로 저장됩니다.
    Dynamic SQL로 ( UPDATE ... SET col = {'a','b','c','a','b','a'} ..) 저장할 때만 정상 값으로 저장되는군요.
    Java 8에서 Cubrid JDBC Driver 9.0 ~ 11.1 모두 테스트 해 봤는데, 9.0과 9.1은 "Cannot communicate with the broker..."로 죽고,
    9.2 이상은 에러는 안나지만 저장된 값이 정상이 아닙니다.

    JDBC 버그 같습니다.
  • ?
    kisoo 2023.01.25 13:23
    CUBRID jdbc 차원에서 검토하겠습니다.

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

    Date2024.04.23 Byadmin Views43
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4458
    read more
  3. attribute가 AUTO_INCREMENT로 생성됐는지 확인할 수 있는 딕셔너리는 무엇인가요?

    Date2023.01.08 By새옹지마 Views365
    Read More
  4. varchar <-> collection으로 변환이 가능한가요?

    Date2023.01.08 By새옹지마 Views48
    Read More
  5. SET, MULTISET, LIST과 같은 컬렉션 타입 컬럼에 저장된 원소의 갯수를 알고 싶습니다.

    Date2023.01.06 By새옹지마 Views130
    Read More
  6. JDBC로 SET 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요?

    Date2023.01.04 By새옹지마 Views97
    Read More
  7. JDBC로 BIT(n) 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요?

    Date2023.01.03 By새옹지마 Views56
    Read More
  8. 큐브리드 매니저 관리모드 접속 시 오류가 발생합니다.

    Date2023.01.03 By정A Views270
    Read More
  9. WHERE절에 REGEXP_REPLACE를 넣고 실행하면 다운됩니다.

    Date2023.01.02 By거지같은 Views318
    Read More
  10. 암호화관련 문의 드립니다.

    Date2022.12.29 By초코초코초 Views102
    Read More
  11. 모든 테이블의 목록과 각 테이블의 로우 (레코드) 수 확인

    Date2022.12.28 By키롱 Views195
    Read More
  12. 큐브리드 FOR문 관련 질의드립니다.

    Date2022.12.28 By계란 Views220
    Read More
  13. [처리완료] 큐브리드 unloaddb, loaddb 시 특수문자 깨짐 및 Lexical error

    Date2022.12.27 By백수인 Views137
    Read More
  14. 쿼리 튜닝 및 실행계획 관련 문의 드립니다.

    Date2022.12.23 Bykikiki767 Views136
    Read More
  15. 펑션 오류 문의드립니다

    Date2022.12.17 By초코초코초 Views141
    Read More
  16. insert 시 오류 문의

    Date2022.12.16 Bysteve Views127
    Read More
  17. cubrid11.2 embedded SQL 지원 여부 및 메뉴얼 위치?

    Date2022.12.15 Byjjune1206 Views45
    Read More
  18. Error : [-596] The 1953 pages of total temporary space allowed have been exceeded.

    Date2022.12.10 By리들러 Views265
    Read More
  19. 큐브리드 DB링크 문의드립니다.

    Date2022.12.01 By초코초코초 Views150
    Read More
  20. Oracle to CUBRID Migration 방안

    Date2022.12.01 ByDBS Views95
    Read More
  21. cubrid 엔진 설치 오류

    Date2022.12.01 Byminsung Views72
    Read More
  22. kill 명령어로 프로세스가 죽지 않을때

    Date2022.12.01 By나라디 Views156
    Read More
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 200 Next
/ 200

Contact Cubrid

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