ORA-12705 Cannot access NLS data files or invalid environment specified

컴퓨터를 새로 재 설치를 해야 하는 사정이 발생하여 윈도우 운영체제부터 새로 재 설치를 하게되었습니다.

새로 설치한 다른 응용 프로그램은 사용에 문제가 없는데 유독 Oracle DB에 연결하는 응용 프로그램을 실행하면 아래와 같은 오류가 발생하였습니다.

Error : ORA-12705: Cannot access NLS data files or invalid environment specified

이번 글에서는 오라클 ORA-12705 Cannot access NLS data files or invalid environment specified 오류 해결 방법에 대해 알아보겠습니다.

NLS_LANG란?

오류 해결 방법을 설명하기에 앞서 오라클 환경 변수의 NLS_LANG에 대해 간략하게 설명하겠습니다.

NLS_LANG[LANGUAGE]_[TERRITORY].[CHARACTERSET] 3가지 요소로 구성되는 환경 변수입니다.

  • LANGUAGE는 메시지에 사용되는 언어를 지정합니다. 그리고 요일이나 월 이름과 같은 규칙을 지정하기도 합니다.
    지정하지 않으면 기본 값은 AMERICAN이 됩니다.
  • TERRITORY는 기본 날짜 형식이나 통화 및 숫자 형식에 대한 규칙을 지정합니다.
    지정하지 않으면 LANGUAGE의 지정 값에 따라 기본 값이 지정됩니다.
  • CHARCTERSET은 클라이언트 응용 프로그램에서 사용하는 Character Set을 지정합니다.
    KO16MSWIN949, US7ASCII, WE8MSWIN1252 등이 있습니다.

Oracle ORA-12705 오류 해결 방법

ORA-12705 오류는 특정 하나의 원인에서만 발생하는 오류는 아닙니다.
동일 오류 코드이지만 오류 내용이 조금씩 다른 경우가 있습니다. 이번 글에서 설명하는 내용은 NLS_LANG 설정에 대한 오류 해결 방법입니다.

1. 먼저 사용 중이 Oracle 시스템의 NLS Parameter Value를 먼저 알아야 합니다.

2. 오라클 시스템에서 SELECT * FROM V$NLS_PARAMETERS; 쿼리를 실행하면 아래 화면과 같은 NLS 파라미터 값을 확인할 수 있습니다.

3. 만약 오라클 DB에 연결해서 쿼리 문을 실행할 수 없는 상황이라면 오라클 서버 담당자에게 문의해서 확인을 해야 합니다.

4. 위의 쿼리 문 실행 결과 LANGUAGE의 값은 AMERICAN, TERRITORY의 값은 AMERICA, CHARCTERSET의 값은 KO16MSWIN949로 설정되어져 있는 것을 확인할 수 있습니다.
이 값들은 사용하는 오라클 시스템마다 다를 수 있습니다. 꼭 확인해 보세요.

ORA-12705 Cannot access NLS data files or invalid environment specified 1

5. NLS 파라미터 값을 확인했다면 윈도우 시스템의 환경 변수에 NLS_LANG 환경 변수를 추가 또는 변경해 보겠습니다.

6. 단축키 윈도우키 + R을 실행하여 실행 창을 열고, sysdm.cpl을 입력하고 엔터 또는 확인을 클릭하면 시스템 속성 창이 열리게 됩니다.

ORA-12705 Cannot access NLS data files or invalid environment specified 2

7. 시스템 속성 창에서 [고급] 탭을 선택합니다. 그리고 [환경 변수(N)]을 클릭합니다.

ORA-12705 Cannot access NLS data files or invalid environment specified 3

8. 시스템 변수에 NLS_LANG 추가해 줍니다. [새로 만들기]를 클릭합니다. 만약 NLS_LANG이 이미 있다면 [편집]을 클릭해 줍니다.

ORA-12705 Cannot access NLS data files or invalid environment specified 4

9. 아래 시스템 변수 입력 화면에서 변수 이름(N)NLS_LANG 이라고 입력합니다.
변수 값(V)에 앞에서 확인한 NLS 파라미터 변수 값을 [LANGUAGE]_[TERRITORY].[CHARACTERSET] 형식으로 입력합니다.

해당 컴퓨터에서는 AMERICAN_AMERICA.KO16MSWIN949로 입력해 주었습니다.

ORA-12705 Cannot access NLS data files or invalid environment specified 5

10. 확인을 클릭해서 시스템 변수, 환경 변수, 시스템 속성 창을 차례대로 닫습니다. 그리고 컴퓨터를 한번 재 시작해 주면 끝입니다.

마무리

여기에서는 윈도우 시스템 속성의 환경 변수에서 NLS_LANG 환경 변수를 추가하는 방법에 대해 설명하였습니다.

윈도우 레지스트리 편집기에서 동일한 NLS_LANG 환경 변수를 추가해서 사용할 수도 있습니다.

위치는 [컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_****] 입니다.
Oracle Instant Clinet 설치 버전이나 설치 과정에 지정한 이름에 따라 KEY_**** 부분은 이름은 모두 다를 수 있습니다.

만약 앞에서 설명한 윈도우 시스템 속성의 환경 변수를 추가했음에도 동일 오류가 발생하는 경우 해당 레지스트리 위치에서 NLS_LANG 레지스트리 값을 확인할 필요가 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.

답글 남기기