ORA-01843: not a valid month 오류
2018. 8. 2. 16:29ㆍdatabase/oracle
ORA-01843: not a valid month 오류
기존에 잘 되던 프로그램이 갑자기 위와 같은 오류를 발생시켰다.
달라진 것이라고는 오라클 서버를 바꿔준 것 밖에 없고 소스는 그대로였다.
오라클 12c 로 바꾼게 문제가 된것이라 판단이 된다.
해당 오류를 검색해 보니 NLS_DATE_FORMAT 이 맞지 않아 발생하는 오류라고 한다.
필자가 오류가 발생하는 상황은 특정 데이터를 insert 할 때 발생했다.
insert 할 대상 컬럼을 보니 date 타입은 없었고 Timestamp 타입이 있었다.
이 컬럼때문이라는 느낌이 들어 이 컬럼과 관련이 있는 소스들을 살펴보다 오류가 발생시키는 원인을 찾았다.
오류가 발생하는 소스는 다음과 같다.
1
2
3 |
Date today = new java.util.Date();
Timestamp timestamp = new Timestamp(today.getTime());
String timestampStr = timestamp.toString(); |
cs |
3# 의 timestampStr을 Mybatis 를 이용해서 DB에 입력하는데 입력되는 컬럼의 타입은 Timestamp(6) 이였다.
그래서 해당 소스를 변경하였다.
1
2 |
Date today = new java.util.Date();
Timestamp timestamp = new Timestamp(today.getTime()); |
cs |
String 이 아닌 Timestamp 타입으로 바로 DB에 입력하였더니 더이상 오류가 발생하지 않았다.
VO를 사용중이고 Mybatis를 활용하여 DB에 데이터를 insert 할 때 parameterType을 VO로 설정하였다면, VO에 컬럼과 매칭되는 변수의 타입을 Timestamp로 설정하면 된다.
'database > oracle' 카테고리의 다른 글
Oracle Column PK FK 조회 쿼리 (0) | 2019.03.18 |
---|---|
oracle ora-43853 오류 (0) | 2019.01.26 |
오라클 버전 확인 쿼리 (2) | 2018.02.08 |
ORACLE expdp / ora-06512 (0) | 2017.10.24 |
oracle 컬럼 가로 표시 / xmlagg 특수문자 치환 / WM_CONCAT / Listagg (0) | 2017.04.10 |
oracle sybase 비교 (0) | 2017.03.27 |
toad 주석 기울임꼴 제거 / comment Italic (0) | 2017.02.20 |
oracle / 날짜 더미 테이블 만들기 / 오라클 / 티베로 / tibero / dummy (0) | 2016.01.12 |
oracle / 한 컬럼에 콤마(',') 구분자로 되어있는 코드 치환하기 (0) | 2016.01.05 |
oracle / hint / 힌트 종류 정리 (1) | 2016.01.05 |