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
반응형