IDE 도구/IntelliJ
IntelliJ Tomcat 콘솔 로그 영어출력 & 데이터 한글출력 ORA-01861 에러 해결
유혁스쿨
2024. 2. 18. 13:38
728x90
반응형
블로그에는 잘못된 코드 및 설정 정보가 많은것 같다.
오류가 난 개발 환경은 인텔리제이, Maven, 외장 Tomcat이다.
우선 잘못된 정보는 아래와 같다.
-Duser.language=en -Duser.region=us
Tomcat Edit Configuration에서 VM Options에 위와같이 입력하면 로그는 영어로, 데이터는 한글로 출력되며, 깨지지 않는다.
그러나 AWS RDS로 오라클 DataBase 사용시 ORA-01861이라는 오류를 직면하게 된다.
깃허브 프로젝트 이슈예를들어 WHERE조건절에 아래와 같은 쿼리를 작성했을 때 오류가 발생한다.
WHERE AT_DATE = TO_CHAR(SYSDATE,'YYYY-MM-DD') ## AT_DATE는 Date타입이다.
해결책은 아래와 같다.
WHERE TO_CHAR(AT_DATE,'YYYY-MM-DD') = TO_CHAR(SYSDATE,'YYYY-MM-DD') ## AT_DATE는 Date타입이다.
원인은 아래 설정이다
-Dsuer.region=us
RDS에 설정된 Date의 기본 NLS 타입과 맞지 않아 오류가 발생하는거 같다.
내가 한 설정은 아래와 같다 (로그 한글출력 / 데이터 한글 깨짐 방지)
[idea64.exe.vmoptions] shift 두번
-Dfile.encoding=UTF-8
[Tomcat Configuration VM Options]
-Dfile.encoding=UTF-8
위와 같이 설정하면 로컬의 시스템 언어 설정에 맞춰서 로그가 한글로 맞춰져 출력되는거 같다.
만약 로그는 영어 / 데이터는 한글 조합으로 출력하고 싶다면
[idea64.exe.vmoptions] shift 두번
-Dfile.encoding=UTF-8
[Tomcat Configuration VM Options]
-Duser.language=en -Dfile.encoding=UTF-8
-Dfile.encoding=UTF-8 옵션은 idea64.exe.vmoptions파일과 Tomcat Configuration VM Options 양쪽 모두 설정해줘야만 한다!!!!
728x90
반응형