DB/RDBMS
ORA-01861: literal does not match format string 오류 조치
호형
2021. 5. 10. 10:55
ORA-01861: literal does not match format string ..
아주 골치 아픈 오류였다. 왜 골치가 아팠냐면 내 로컬이나 AS-IS 서버에서는 잘 동작하는데 새로 이전을 할 서버에서는 위와 같은 오류가 나며 동작하지 않았다.
특정 환경에서 안되니 문제에 접근할때 특정 환경과 잘 되는 환경의 차이를 분석해 봐야 한다.
분석을 할때 되는 곳과 안되는 곳에서 아래의 구문을 DB developer 에서 한번 돌려보도록 하자.
SELECT * FROM nls_session_parameters WHERE PARAMETER LIKE '%DATE%' OR PARAMETER LIKE '%LANG%';
그럼 위와 같이 DB의 NLS_LANGUAGE, NLS_DATE_FORMAT, NLS_DATE_LANGUAGE 에 대한 정보를 얻을 수 있다. 이 정보에 맞게 서버의 환경을 맞춰주도록 하자. 필자의 경우는 OS의 LANG 설정이 달랐다. 그래서 오류가 나는 서버 전체에 대해 OS LANG 정보를 바꾸지 않고 tomcat을 기동할때 언어를 기존의 en_us에서 ko_kr로 변경했더니 위의 오류는 사라졌다.
기존 환경에서는 잘 되던게 새로운 곳에서는 안된다면 소스를 수정하지 말고 환경을 비교하고 바꿔주도록 하자.
끝!