반응형
DB2 jdbc 오류 메시지는 다음과 같이 표현됩니다.
Caused by: com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=4, COLNO=7, DRIVER=4.13.127 | cs |
다른 DB의 친절한 설명과 다르게 모두 코드화 되어있어서 해석을 해야합니다.
http://goni9071.tistory.com/entry/DB2-SQLSTATE
http://goni9071.tistory.com/entry/DB2-SQLCODE
위의 링크를 참고해서 SQLCODE=-407 은 NULL 값을 입력할 수 없다는 뜻입니다.
그리고 SQLCODE=23502 는 '삽입 또는 갱신 값이 널(NULL)이지만, 컬럼이 널(NULL)을 포함할 수 없습니다.' 의 뜻입니다.
어떤 종류의 오류인지 알았다면 실제로 어떤 컬럼이 오류인지를 확인하는 방법입니다.
아래 SQL을 이용하면 실제 어떤 스키마의 테이블의 컬럼인지 확인할 수 있습니다.
SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME FROM SYSCAT.TABLES AS T, SYSCAT.COLUMNS AS C WHERE T.TBSPACEID = 2 AND T.TABLEID = 4 AND C.COLNO = 7 AND C.TABSCHEMA = T.TABSCHEMA AND C.TABNAME = T.TABNAME | cs |
반응형
'Database' 카테고리의 다른 글
db2 substring (0) | 2018.01.11 |
---|---|
DB2 LIKE 검색 (0) | 2018.01.07 |
DB2 date format (0) | 2018.01.07 |
DB2 SYSDATE NOW (0) | 2018.01.07 |
DB2 SQLSTATE (0) | 2018.01.07 |
DB2 SQLCODE (0) | 2018.01.07 |
db2 create sequence (0) | 2018.01.01 |
db2 jdbc url (0) | 2017.12.31 |