Oracle 쿼리에서 NVL(컬럼,'대체할 문자열')과 같이 쓰면 한글이 깨지는 문제 0 0 1,348

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글 올려봅니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입