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 차원에서 검토하겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143797
4128 cubrid manager에서 테이블 데이터를 조회하여 편집가능 버튼 클릭시 PK 가 없다고 메세지 출력 1 guloman 2024.11.21 5390
4127 윈도우 CUBRID 설치 후 localhost 연결이 안됩니다. 1 플레이어블 2024.11.21 5251
4126 윈도우용 CUBRID 설치 시 자바 버전 오류 문의 1 플레이어블 2024.11.21 5228
4125 exec_time 단위 문의드립니다 1 잘했어요 2024.11.20 5261
4124 서버 종료 없이 loaddb & unloaddb 2 마로비 2024.11.19 5110
4123 supplemental logging과 관련하여 CDC 관련 도구가 개방된게 있을까요? 1 오충 2024.11.15 5155
4122 큐브리드 매니저에서 foreign key 추가시 오류 7 후니얌 2024.11.14 5205
4121 큐브리드 admin접속 에러 12 file austin 2024.11.14 5413
4120 큐브리드 소수점 절삭 설정 문의드립니다. 1 file 트라이언 2024.11.11 5289
4119 리눅스 0레벨 풀 백업 파일은 다른 서버 리눅스에서 복구도 안되는 건가요? 4 file 예찬샤론 2024.11.11 5159
4118 리눅스 0레벨 풀 백업 파일을 윈도우 큐브리드에서 복구 할 수 있나요? 1 예찬샤론 2024.11.11 4966
4117 jdbc 11.3 버전 이상은 어디서 다운받나요?? 5 후니얌 2024.11.11 5025
4116 큐브리드 브로커 접속이 안되는 상황입니다.. 2 wodud0170 2024.11.08 5319
4115 CUBRID-Python driver connect _cubrid.InterfaceError: (-20002, 'ERROR: CCI, -20002, Invalid connection handle') 에러 1 고감자 2024.11.05 5181
4114 Cubrid Manager의 Query Editor로 데이터베이스 생성이 가능한가요? 1 Maximus 2024.10.30 5435
4113 큐브리드 데이터 용량 문의 4 안녕 2024.10.30 5465
4112 backupdb로 생성된 백업파일의 용량 관련 문의 1 플레이어블 2024.10.28 5378
4111 cubrid api 관련 문의 드립니다. 1 잘했어요 2024.10.23 5336
4110 jdbc 드라이버 교체 문의 3 농이 2024.10.23 5341
4109 Cubrid 속성값 관련 문의 2 오수섭 2024.10.22 5432
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 213 Next
/ 213

Contact Cubrid

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