Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

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


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

OS
Linux 64bit
CUBRID Ver.
10.1, 10.2, 11.0
CUBRID TOOL Ver.
미사용
응용 환경(API)
java/JDBC


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

 

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


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

안녕하십니까.

 

큐브리드 JDBC의 PreparedStatement.executeBatch에 대해 문의드립니다.

 

예를 들어 설명드리면,

10건을 addBatch후

int[] ret = pStmt.executeBatch();

를 실행했습니다.

10건 중 3번째 데이터에 문제가 있어서 BatchUpdateException이 발생했는데요,

JDBC 스펙에 의하면 정상적으로 insert된 건에 대해서는 반환 int[] 에 값을 1로 설정해 반환하게 돼 있음에도 불구하고

null이 반환됩니다.

JDBC 스펙대로라면

{1, 1, -3, 1, 1, 1, 1, 1, 1, 1}

또는 

{1, 1, -3}

둘 중의 하나를 반환해야 하는데 하나라도 에러가 있으면 항상 null을 반환합니다.

JDBC 스펙대로 해석하면 "한 건도 INSERT되지 않았다"로 해석해야 하죠.

그 상태에서 중단하면 일부 데이터만 들어가 있는 게 확인되고,

한 건씩 다시 insert해 보면 PK 중복 에러가 나는 걸 보면 일부는 INSERT된 게 확실합니다.

 

autoCommit과 관계있나? 싶어서 autoCommit이 true인 경우와 false인 경우 모두 테스트 해 봤는데, 동일하군요.

이런 경우에는 정상 insert건과 실패건을 어떻게 구분하나요?

 

autoCommit=false라면 rollback하고 다시 한 건씩 처리하면 되는데,

autoCommit=true라면 에러 발생 시 한 건씩 처리하면서 키 중복 나면 "처리가 된 건가?"로 의심해야 하는데,

실제로 데이터가 중복이었을 수도 있어서 좋은 방법은 아닌 것 같습니다.

 

 

  • ?
    hwanyseo 2023.03.21 14:34

    큐브리드를 이용해 주셔서 감사합니다.

     

    해당 부분 확인 결과 BatchUpdateExcption 발생 시 catch에서 넘어온 BatchUpdateExcption class에 updateCounts값을 확인 하시면

    결과 int[]를 확인 하실수 있습니다.

    다른 jdbc와 동일한 스펙 부분일 것으로 생각됩니다.

     

    감사합니다.

  • ?
    새옹지마 2023.03.29 08:50
    감사합니다.
    답글대로 하니 해결됐습니다.

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

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

    Date2020.04.09 Byadmin Views4458
    read more
  3. 8.4.4 charset. Collation 확인 방법

    Date2023.05.24 By네오랜덤 Views188
    Read More
  4. 8.4.4버젼 charset 확인

    Date2023.05.23 By네오랜덤 Views193
    Read More
  5. 쿼리 속도 차이 질문

    Date2023.05.18 By하얀미스 Views143
    Read More
  6. spring boot 에서 HikariPool-1 - Driver does not support get/set network timeout for connections. (java.lang.UnsupportedOperationException) 질문 드립니다.

    Date2023.05.18 Bykjaminam Views785
    Read More
  7. cci 프로그래밍에서 DB LINK 관련 문의

    Date2023.05.18 Byjjune1206 Views131
    Read More
  8. 큐브리드 매니저 실행이 오류

    Date2023.05.18 By청주시청 Views101
    Read More
  9. ddl 추출

    Date2023.05.17 By네오랜덤 Views105
    Read More
  10. 하나의 쿼리에서 복수 테이블 업데이트 방법 문의

    Date2023.05.17 By도담도담 Views136
    Read More
  11. cubrid driver 설치 문의

    Date2023.05.08 By고구망구망 Views438
    Read More
  12. 큐브리드 매니저 접속 이 안됩니다. 확인 요청 드립니다.

    Date2023.04.28 By뿡이 Views128
    Read More
  13. Fk값 가져오기

    Date2023.04.24 By네오랜덤 Views166
    Read More
  14. 서버 메모리 교체 및 ha 상 데이터 삭제 절차

    Date2023.04.20 By레피엘 Views113
    Read More
  15. java stored procedure 에 loadjava 로 jar 파일 로드 시 java.lang.ClassNotFoundException 에러 문의

    Date2023.04.18 By개미가불쌍해 Views147
    Read More
  16. Cubrid stored procedure 스케쥴 등록 형식

    Date2023.04.17 ByRoy Views112
    Read More
  17. 암호화 함수 MDB_ENC 질문입니다

    Date2023.04.17 ByBE-DEV Views82
    Read More
  18. auto_increment 추가 방법 문의

    Date2023.04.14 By부패방지운영팀 Views265
    Read More
  19. CUBRID 사용자 계정 생성 관련 문의

    Date2023.04.14 By몽키스패너 Views132
    Read More
  20. order by 이후 rownum이 의도와 다르게 찍힙니다.

    Date2023.04.14 By바보똥개 Views143
    Read More
  21. 백업 및 복구 시 cubrid 버전 간 호환 문의

    Date2023.04.13 By플레이어블 Views71
    Read More
  22. centos8에서 쉘스크립트 실행시 csql: command not found 오류 발생

    Date2023.04.13 Bykjn4345 Views180
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 200 Next
/ 200

Contact Cubrid

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