DEFAULT 값을 설정해둔 컬럼에 data가 ""가 들어갈 경우, 설정된 DEFAULT 값이 아닌 (null)이 입력 됨.
문제 원인
값이 없는 컬럼에는 DEFAULT 값이 들어가지만, 명시적으로 NULL을 넣으면 DEFAULT 값은 설정되지 않음.
이것을 해결하는 기능인 DEFAULT ON NULL이 있긴 하지만 oracle 12c 부터 지원. (난 oracle 11g)
문제 해결
Mybatis를 사용하고 있기 때문에 Dynamic SQL로 구분.
<if test = "testvalue!= null and testvalue!= ''">로 데이터가 ""일때는 INSERT 시 SKIP 하도록 수정.
참고 사이트
- [오라클12C,ORACLE12C 새기능, 오라클12C교육, ORACLE12C강좌]테이블생성시 명시적 NULL을 통한...
[MyBatis] invokeJoinpointUsingReflection 에러 (0) | 2015.06.15 |
---|---|
[MyBatis] PersistenceException 에러 (0) | 2015.06.15 |
ORA-38104: Columns referenced in the ON Clause cannot be updated (0) | 2013.12.18 |
ORA-00918: 열의 정의가 애매합니다 (0) | 2013.12.16 |
[Oracle][ORA-02067] 트랜잭션 또는 저장점 롤백이 요구됩니다, 등 (0) | 2013.11.14 |
댓글 영역