by 구너 [SQL Query] oralce [2021.02.25 17:18:10]
안녕하세요. 오라클 DB와 Spring boot를 이용한 개발 중에 문제가 한가지 생겨 문의드립니다.
SELECT NVL(COL1, '대체할 문자열')
위와 같이 COL1값이 null일 때 '대체할 문자열'이라는 한글값을 대신 보여주려고 하는데요, 사내 오라클 캐릭터셋이 좀 남달라서(?) 생기는 문제인지... 한글값이 들어간 컬럼값을 조회하면 문제없지만 NVL의 대체값처럼 "직접" 한글값을 넣어서 조회해서 Spring 쪽으로 가져오면 한글이 "??????"와 같이 물음표로 깨져서 나오더라고요. (DB Client 툴로 DB에서 저 쿼리를 조회하면 한글로 잘 나옵니다.)
조회하려는 컬럼은 VARCHAR2 입니다. (DB 캐릭터셋은 NLS_CHARACTERSET US7ASCII, NLS_NCHAR_CHARACTERSET UTF8 입니다.) CONVERT 함수로 UTF8로 변환도 해보고 UNISTR로 유니코드값으로 변환 후 해봐도 똑같고... 혹시 비슷한 증상 겪어보신 분이 계실까하여 QA글 올려봅니다.