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 Views128
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4476
    read more
  3. 임의용량에 대해 문의 드립니다.

    Date2023.01.18 By김은지 Views57
    Read More
  4. 윈도우용 python 드라이버 설치 오류

    Date2023.01.18 By리치타이거 Views82
    Read More
  5. cubrid 드라이버 설치 오류

    Date2023.01.17 Byh2h2 Views120
    Read More
  6. 큐브리드 버전 업그레이드 관련 문의 드립니다.

    Date2023.01.17 By초코초코초 Views91
    Read More
  7. python 3.9 지원 문의

    Date2023.01.17 By리치타이거 Views86
    Read More
  8. Python Cubrid DB 연동 시 import _cubrid 오류

    Date2023.01.13 By이노무소오파 Views149
    Read More
  9. cci에서 패스워드 암호화 사용 방법

    Date2023.01.12 By가을이아빠 Views56
    Read More
  10. 데이터베이스 백업, 복구(backupdb, restoredb)

    Date2023.01.12 Bywiz Views284
    Read More
  11. 실리콘 맥(M1, ARM) 큐브리드 매니저 지원 문의

    Date2023.01.09 By큐유저 Views239
    Read More
  12. attribute가 AUTO_INCREMENT로 생성됐는지 확인할 수 있는 딕셔너리는 무엇인가요?

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

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

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

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

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

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

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

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

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

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

    Date2022.12.27 By백수인 Views137
    Read More
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 201 Next
/ 201

Contact Cubrid

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