Support
Orange Support > 문의하기
Q & A
Re: NLS 질문
Date2002.07.12 /
Hit : 16386
두 서버간의 CHARACTERSET 이 다른면 한글이 제대로 나오는 것은 기대할 수 없습니다.
질문하신 상황이 잘 이해가 가지 않는군요. 어느 DB에서 어느 DB로 Query를 했는지가 명확하지가 않네요. Local 의 Character Set과 DB Server의 Character Set이 다르다면 내부적으로 무조건 Characterset Conversion이 일어나게 됩니다. 따라서 양쪽의 Characterset이 다르다면 한글은 안나온다고 생각하시면 됩니다. 감사합니다.
---------- Original Message ----------
이름 : 짱구 제목 : NLS 질문 안녕하세요.. [제 PC(Win2000)의 환경]: KOREAN_KOREA.KO16KSC5601 <= registry에 등록된 정보 KOREAN_KOREA.KO16KSC5601 <= DB내에 등록된 정보 [원격 유닉스 서버의 환경]: AMERICAN_AMERICA.US7ASCII <= .profile에 등록된 NLS_LANG정보 AMERICAN_AMERICA.US7ASCII <= DB내에 등록된 정보 [DB 링크 생성]: 제 PC의 DB[DB NAME: AAA]---> 원격 유닉스 서버의 DB [DB:BBB] [DB link DBA01 생성 ] 제 PC의 DB[DB NAME: AAA]<--- 원격 유닉스 서버의 DB [DB:BBB] [DB link DBA02 생성 ] [CASE1] - AAA 디비[ KO16KSC5601 ]의 scott.emp ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | 은실이 | clerk ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 금실이 | 디비에이 ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ - 원격 유닉스 서버에서 디비링크 'DBA02'를 사용하여 AAA디비의 emp를 조회했을때의 결과.. SQL> select * from emp@DBA02; ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | ??? | clerk ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | ??? | ??? ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ => KO16KSC5601(2byte 캐릭터셋) > US7ASCII(1byte 캐릭터셋) 이므로 이 경우에는 한글이 깨져 서 출력되는게 당연한데, 아래 [CASE2]의 결과는 왜 정상적으로 나오지 않을까요??? [CASE2] - BBB 디비[ US7ASCII ]의 scott.emp ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | 은실이 | ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 금실이 | 디비에이 ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ - 제 PC의 client에서 디비링크 'DBA01'을 사용하여 BBB디비의 emp를 조회했을때의 결과.. SQL> select * from emp@DBA01; ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | @:=G@L | ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 1]=G@L | 5P:q?!@L ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 질문> KO16KSC5601(2byte 캐릭터셋) > US7ASCII(1byte 캐릭터셋) 이므로 한글이 제대로 나와야 할 것 같은데 위와같은 결과가 나오는 이유는 무엇인지요??? ( "???"로 나오는건 아니니까 글자 자체가 깨진건 아니지요??? ) 잘 몰라서리.. -_-;; 제발 알려주세요.. 감사합니다..
질문하신 상황이 잘 이해가 가지 않는군요. 어느 DB에서 어느 DB로 Query를 했는지가 명확하지가 않네요. Local 의 Character Set과 DB Server의 Character Set이 다르다면 내부적으로 무조건 Characterset Conversion이 일어나게 됩니다. 따라서 양쪽의 Characterset이 다르다면 한글은 안나온다고 생각하시면 됩니다. 감사합니다.
---------- Original Message ----------
이름 : 짱구 제목 : NLS 질문 안녕하세요.. [제 PC(Win2000)의 환경]: KOREAN_KOREA.KO16KSC5601 <= registry에 등록된 정보 KOREAN_KOREA.KO16KSC5601 <= DB내에 등록된 정보 [원격 유닉스 서버의 환경]: AMERICAN_AMERICA.US7ASCII <= .profile에 등록된 NLS_LANG정보 AMERICAN_AMERICA.US7ASCII <= DB내에 등록된 정보 [DB 링크 생성]: 제 PC의 DB[DB NAME: AAA]---> 원격 유닉스 서버의 DB [DB:BBB] [DB link DBA01 생성 ] 제 PC의 DB[DB NAME: AAA]<--- 원격 유닉스 서버의 DB [DB:BBB] [DB link DBA02 생성 ] [CASE1] - AAA 디비[ KO16KSC5601 ]의 scott.emp ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | 은실이 | clerk ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 금실이 | 디비에이 ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ - 원격 유닉스 서버에서 디비링크 'DBA02'를 사용하여 AAA디비의 emp를 조회했을때의 결과.. SQL> select * from emp@DBA02; ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | ??? | clerk ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | ??? | ??? ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ => KO16KSC5601(2byte 캐릭터셋) > US7ASCII(1byte 캐릭터셋) 이므로 이 경우에는 한글이 깨져 서 출력되는게 당연한데, 아래 [CASE2]의 결과는 왜 정상적으로 나오지 않을까요??? [CASE2] - BBB 디비[ US7ASCII ]의 scott.emp ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | 은실이 | ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 금실이 | 디비에이 ㅡㅡㅡㅡ|ㅡㅡㅡㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ - 제 PC의 client에서 디비링크 'DBA01'을 사용하여 BBB디비의 emp를 조회했을때의 결과.. SQL> select * from emp@DBA01; ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ empno | ename | job ㅡㅡㅡㅡ|ㅡㅡㅡ--ㅡ|ㅡㅡㅡㅡㅡㅡㅡㅡ 8001 | @:=G@L | ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 8002 | 1]=G@L | 5P:q?!@L ㅡㅡㅡㅡ|ㅡㅡㅡㅡ--|ㅡㅡㅡㅡㅡㅡㅡㅡ 질문> KO16KSC5601(2byte 캐릭터셋) > US7ASCII(1byte 캐릭터셋) 이므로 한글이 제대로 나와야 할 것 같은데 위와같은 결과가 나오는 이유는 무엇인지요??? ( "???"로 나오는건 아니니까 글자 자체가 깨진건 아니지요??? ) 잘 몰라서리.. -_-;; 제발 알려주세요.. 감사합니다..
NLS 질문
짱구
2002.07.12
Re: NLS 질문
오렌지팀
2002.07.12
Re: Re: NLS 질문
짱구
2002.07.16
Re: Re: Re: NLS 질문
오렌지팀
2002.07.22