반응형

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

+ Recent posts