DB 캐릭터셋과 OS환경 파라메타가 다른 경우 아래와 같이 ORA-00917 또는 ORA-01756 같은 에러를 만나게 됩니다.
missing comma ? 콤마를 내가 잘못 찍었나?? 아무리 눈을 부라리고 다시 봐도 틀린데는 없죠~
가끔 싱글따옴표(') 대신에 더블따옴표(")를 썼어야 했나? 라고 생각하는 경우도 있지만 ㅎㅎ 전혀 아닙니다.
문제는 OS 환경변수에 세팅되어 있는 DB 캐릭터셋~
환경변수 NLS_LANG 값이 KO16MSWIN949 로 되어 되어있네요.
앞의 AMERICAN_AMERICA 는 중요하지 않습니다.
DB에서 사용하는 캐릭터셋을 보면,
AL32UTF8 로 되어 있네요.
OS환경변수 NLS_LANG 을 똑같이 맞춰줍니다.
이젠, 에러없이 잘 수행되는 것을 확인할 수 있습니다.
export NLS_LANG=KOREAN_KOREA.AL32UTF8 와 같이 앞부분은 KOREAN_KOREA 로 잡아도 됩니다.
이 부분은 사용자한테 보여지는 메시지를 한글로 보여주는 것일뿐, 에러를 유발하거나 하지는 않습니다.
그리고, 당연한 얘기이지만, 한글의 경우만 에러가 납니다.
where PRODUCT_GUBUN = 'clothes'; 와 같이 영어만 사용하는 경우에는 에러가 나지 않습니다.
'IT관련' 카테고리의 다른 글
오라클 Exadata 버전별 상세항목(CPU, Mem, Storage) 비교 (0) | 2019.06.13 |
---|---|
오라클 엑사데이터 용량 (Oracle Exadata Usable) 버전별 비교 - 2중화, 3중화 (0) | 2019.06.13 |
오라클 에러 정보 (ORA-07445) - Internal Error Exception (0) | 2019.06.12 |
오라클 에러 정보 (ORA-00600) - Internal Error Exception (0) | 2019.06.12 |
HDD 하드디스크의 표기용량, 실제용량 차이나는 이유 (1) | 2019.06.09 |