728x90
반응형
진짜 가끔 발생하는 오류 ORA-01861: literal does not match format string
로컬에서는 잘만 되던게 서버에 올리니까 갑자기 오류를 내뿜는다.
나의 경우는 TO_CHAR(SYSDATE, 'YYYYMMDD')로 가져온 날짜 데이터를 빼기 계산해서 잔여 일수를 노출시키는 것이 목적이었는데, 여기에서 오류가 발생했다.
오류 쿼리
, (TO_DATE(TO_CHAR(SHOW_END_DT, 'YYYYMMDD')) - TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD')) AS REMAINDER_DATE
원인 자체는 TO_CHAR, TO_DATE 함수에 날짜를 사용하려 할 때, 두번째 인자인 형식 지정을 해주지 않아서 그런거였다.
TO_DATE를 사용할때, 두번째 인수를 셋팅하지 않으면 오라클 데이터베이스에 설정되어있는 날짜 설정에 따라 변환되는데, 해당 에러는 개발 DB의 문자셋과 언어설정, 날짜설정이 운영DB의 설정 값과 다르기 때문에 나타나는 것이다.
참조 - https://smile-haha.tistory.com/7
[oracle] ORA-01861: literal does not match format string
개발서버에서 개발을 하다가 개발한 소스를 운영환경에 올릴 경우, TO_CHAR, TO_DATE 메서드를 사용하는 부분에서 가끔씩 아래와 같은 에러가 발생한다.(ex) TO_CHAR(TO_DATE(‘20170101’),'yyyy-mm-dd') 개발서
smile-haha.tistory.com
TO_CHAR(DATE) 라던지, TO_DATE(DATE) 라던지!
TO_CHAR(DATE, 'YYYY-MM-DD') 또는 TO_DATE(DATE, 'YYYY-MM-DD') 처럼 두번째 인자에 형식 지정을 해주는 것을 꼭 지켜주장
물론 DB의 날짜 설정 값이 운영DB - 테스트DB가 같다면 괜찮을 수 있겠지만, 그래도 혹시 모르니 꼭 써줘야 할 것 같다.
정상 쿼리
, (TO_DATE(TO_CHAR(SHOW_END_DT, 'YYYYMMDD'), 'YYYY/MM/DD HH24:MI:SS') - TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD'), 'YYYY/MM/DD HH24:MI:SS') AS REMAINDER_DATE
728x90
반응형
'웹개발지식쌓기' 카테고리의 다른 글
[back] 세션 설정 파일의 위치들 (프로젝트, 서버, 리눅스 profile 의 세션 설정) (0) | 2023.06.01 |
---|---|
[back] association 과 collection 사용 역할 구분 (0) | 2023.06.01 |
[server] 리눅스 언어설정 locale - 테스트 서버에서 요일이 영어로 나올 때 (0) | 2023.05.26 |
[front] Safari 날짜정보 NaN으로 나올 때 (0) | 2023.05.19 |
[back] tomcat 새 프로젝트 연결 안될 때 (0) | 2023.03.03 |