DBI connect('xxx','yyy',...) failed: ORA-12705: invalid or unknown NLS parameter value specified (DBD ERROR: OCISessionBegin) at C:\temp\zzz.pl line 11
액셀 데이타와 오라클 데이타랑 섞어서 뭔 짓을 좀 해볼라고, 간단한 테스트를 위해
Perl 의 Win32::OLE 모듈과 DBI 오라클 드라이버를 이용해봤다. 근데 초기부터 저따위
에러를 턱 뱉어내는게 아닌가? 신발...
문제의 해결책은 오라클 메타링크 Note 158654.1문서에 보면 나오는데
문서의 차례를 보면...
1. ORA-12705 with incorrectly specified NLS_LANG
2. ORA-12705 with incorrectly specified ORA_NLSx
3. ORA-12705 due to Installation Issues
4. ORA-12705 when using Special Charactersets
5. ORA-12705 when connecting via SQL*Net
6. ORA-12705 during Migration
7. ORA-12705 when connecting with SVRMGRL and SQLPLUS
8. ORA-12705 when connecting with Precompiler Aplications
9. ORA-12705 during Export/Import
쩝, 차례부터 너무 평범하지 않냐? 내용은 오라클 조금 하신 분은 다 알만한 내용...
어차피 대부분의 문제는 1번에서 결판난다. 그런데 오라클 윈도즈 버전은 유닉스에서
환경변수로 처리하는 부분을 레지스트리에 넣어둔다. 꼬이는 부분은 오라클 관련
레지스트리에 접근해 보면 NLS_LANG 이라는 부분이 한두개가 아니고 3개나 된다는 거거든. ^^;
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
이렇게 3개!
그러나, 처음 인스톨시에는 마지막 ...\ORACLE\HOME0 만 NLS_LANG 값이 설정되어
있고 (KOREAN_KOREA.KO16KSC5601) 나머지 것들에는 NA 로 되어 있다는 거거든...
그렇다면 잘 돌아가는 다른 어플리케이션들은 ...\ORACLE\HOME0 만 참고하여 언어셋을
설정하는데 Perl 은 (아님 DBI 가) 다른 부분의 NLS_LANG 값을 참고한다는 거거든...
(프라하의 연인 김주혁의 스타일로 읽어주기 바라는 거거든... ^^; )
그렇다면 어디일까요? (연애술사의 박진희처럼...)
다행이도 처음에 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 의 NLS_LANG 에
KOREAN_KOREA.KO16KSC5601 를 넣어주니... 짜잔~ 에러없이 돌아가요. 유후~
왜 그런건 안써놓냐고 메타링크 바보~
별것도 아닌걸로 장황하게 타이핑하는 슬라임...-.-;
"검색으로 찾아와서 제 글 읽고, 문제 해결하신 분은 리플하기!"
'DB > Oracle' 카테고리의 다른 글
| ORA-29275 부분 다중 바이트 문자 Error (0) | 2016.02.04 |
|---|---|
| oracle lock 조회 lock 해제 oracle 락 조회 락 해제 오라클 락 조회 오라클 락 해제 (0) | 2016.02.04 |
| ORA-02298 테이블 제약조건 수정 및 추가 시 에러 (0) | 2016.02.04 |
| ORA-01861: literal does not match format string (0) | 2016.02.04 |
| pid로 점유율 높은 쿼리 뽑기 (0) | 2016.02.04 |