시스템내에서 암호화 하는 과정에서 제목과 같은 오류가 발생했다.
client 에서 해석하지 못하는 문자라는 의미다..
Server : 오라클이 설치된 컴퓨터
Client : 토드나 오렌지 등의 툴
즉.. server 에서는 해석을 했는데. client 에서는 해석을 못했다??
-> Server 와 Client 의 케릭터 set이 틀리다는 의미다.
SELECT * FROM SYS.PROPS$ WHERE name='NLS_CHARACTERSET';
위의 query 로 서버측의 character set 을 조회 해보자.
내가 사용 하는 DB 서버는 AL32UTF8을 쓴다.
그럼 Client 의 character set 을 보자
실행 창에서 regedit(레지스트리 편집기) 을 치고 NLS_LANG 로 검색(Ctrl + f) 해보자.
client 에서 해석하지 못하는 문자라는 의미다..
Server : 오라클이 설치된 컴퓨터
Client : 토드나 오렌지 등의 툴
즉.. server 에서는 해석을 했는데. client 에서는 해석을 못했다??
-> Server 와 Client 의 케릭터 set이 틀리다는 의미다.
SELECT * FROM SYS.PROPS$ WHERE name='NLS_CHARACTERSET';
위의 query 로 서버측의 character set 을 조회 해보자.
NAME VALUE$ COMMENT$
NLS_CHARACTERSET AL32UTF8 Character set 내가 사용 하는 DB 서버는 AL32UTF8을 쓴다.
그럼 Client 의 character set 을 보자
실행 창에서 regedit(레지스트리 편집기) 을 치고 NLS_LANG 로 검색(Ctrl + f) 해보자.
보통의 경우 KOREAN_KOREA.KO16MSWIN949 로 되어 있을 것이다.
결국 server 랑 client 랑 nls_lang 이 틀리므로 발생한 문제다.
인제 선택이다..
서버의 lang을 바꿀것인가? client 의 lang을 바꿀것인가?
이미 운영 중인 DB 라면 무조껀 client 의 lang을 바꾸어야 한다.
위에 Server에 보면 AL32UTF8 이 되어 있다..
따라서 client 의 reg 값을 AMERICAN_AMERICA.AL32UTF8 로 바꾸어 주면 정상적으로 작동한다.
만약 Server를 바꾸고자 한다면(운영 중이지않거나 위험성이 적은 경우)
UPDATE PROPS$ SET VALUE$='KO16KSC5601' WHERE NAME='NLS_CHARACTERSET'
이렇게 Query 를 실행하면 된다. 만, 별로 추천 하지는 않음...
출처 : http://interwater.tistory.com/89
'Database > Oracle' 카테고리의 다른 글
[펌] [오라클] as of timestamp - 갱신(업데이트, 삭제)하기 이전의 내용보기 (0) | 2013.08.11 |
---|---|
trim 혹은 replace 로 제거되지 않는 공백 chr(0) (2) | 2013.08.11 |
중복로우들 중에서 특정 값만 추출하기 (0) | 2013.06.13 |
[펌] ORA-00923 : FROM keyword not found where expected (0) | 2013.05.29 |
새주소 우편번호 관련 공개 DB자료 내려받기 URL (0) | 2013.04.25 |