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. No Image notice by admin 2024/04/23 by admin
    Views 48 

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

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

  3. ROW_NUMBER() OVER(PARTITION BY 어떻게..해야 할까요???

  4. REUSE_OID 적용 시 이해가 잘안되는 부분이 있어 질문드립니다.

  5. No Image 29Aug
    by 몰라알수가없어
    2019/08/29 by 몰라알수가없어
    Views 699  Replies 1

    REST api 지원 여부

  6. REPLACE 함수 문의

  7. RDB와 ORDB 벤치마크

  8. RANK 함수 관련 질문드립니다.

  9. R3.1 64비트 서브쿼리 관련 문의 드립니다

  10. R3.0 버전 문의

  11. R2.2 에서 트랜잭션과 inser_id()

  12. R2.2 에서 엑셀로 보내기가 않되는 것 같습니다.

  13. R1.4->R2.0(64비트)베타 업그레이드 및 마이그레이션후 DB접속불가.

  14. R1.4 -> R2.2 마이그레이션 중 스키마 로드 에러

  15. Query execution failure #7264 에러가 무슨에러죠?

  16. Query Browser 쿼리질의 에러 발생

  17. Query Browser Eclipse plug-in 설치시 오류

  18. Qt에 Cubri연결 잘 되나요??

  19. QUBRID 매니저에서 실행계획을 볼려면..

  20. QTADO와 OLEDB사용시 문제

  21. Python 으로 데이터 일괄처리 하는 부분??

  22. Python Driver가 있는지요

Board Pagination Prev 1 ... 147 148 149 150 151 152 153 154 155 156 ... 200 Next
/ 200

Contact Cubrid

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