SQL Developer에 새 연결을 추가 할 때 Oracle TNS 이름이 표시되지 않음


93

SQL Developer를 사용하여 Oracle 데이터베이스에 연결하려고합니다.

.Net oracle 드라이버를 설치하고 tnsnames.ora파일을
C:\Oracle\product\11.1.0\client_1\Network\Admin

tnsnames.ora에서 다음 형식을 사용하고 있습니다.

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

SQL Developer에서 새 연결을 만들려고 할 때 TNS 이름이 옵션으로 표시되지 않습니다.

내가 놓친 것이 있습니까?

답변:


176

SQL Developer는 tnsnames.ora 파일을이 순서대로 다음 위치에서 찾습니다.

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. 레지스트리의 TNS_ADMIN 조회 키
  4. /etc/tnsnames.ora (비 Windows)
  5. $ ORACLE_HOME / network / admin / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

어떤 SQL 개발자가 사용 중인지 확인하려면 show tns워크 시트 에서 명령 을 실행하십시오.

tnsnames.ora 파일이 인식되지 않으면 다음 절차를 따르십시오.

  1. tnsnames.ora 파일이 포함 된 폴더를 가리 키도록 TNS_ADMIN 이라는 환경 변수를 정의 합니다.

    Windows에서는 제어판 > 시스템 > 고급 시스템 설정 > 환경 변수 ... 로 이동하여이 작업을 수행합니다 .

    Linux에서는 홈 디렉토리의 .profile 파일에 TNS_ADMIN 변수를 정의하십시오 .

  2. OS가이 환경 변수를 인식하는지 확인

    Windows 명령 줄에서 : echo % TNS_ADMIN %

    Linux에서 : echo $ TNS_ADMIN

  3. SQL Developer 다시 시작

  4. 이제 SQL Developer에서 Connections를 마우스 오른쪽 버튼으로 클릭 하고 New Connection ...을 선택 합니다 . 드롭 다운 상자에서 연결 유형으로 TNS 를 선택 합니다. 이제 tnsnames.ora의 항목이 여기에 표시됩니다.

1
나를 위해 : $ HOME / .tnsnames.ora가 작동하지 않았습니다 ... 대신 $ HOME / tnsnames.ora를 사용했습니다. 또한 참고 : 도구-> 환경 설정으로 이동하여 "tns"를 검색하고 디렉토리를 $ HOME으로 지정해야합니다.
Ryan Delucchi

이것이 SQL 개발자 1.5 버전의 릴리스 노트에 있지만 Ubuntu 12.04 LTS 에서는 # 5 만 작동 한다는 것을 알았습니다 . 귀하의 경우에 해당하는지 확인하려면 다음 단계를 시도하십시오. forums.oracle.com/message/2769285#2769285 . 주목할만한 점 : 저자는 Win Vista에서 문제가있었습니다.
LAFK는 분석 재개 모니카 말한다

Windows에서 나를 위해 일했습니다. 영원히 FTW 로깅!
Isaac

TNS_ADMIN 설정이 작동하지 않았습니다. 대신 컴퓨터에서 모든 TNSNAMES 파일을 검색하고 모든 파일의 내용을 업데이트했습니다. Windows 7 Sql Developer가 일부 오래된 폴더에서 다른 TNSNAMES 파일을 계속 사용하는 이유를 알 수 없습니다.
Ben

1
참고 : $TNS_ADMINDIRECTORY는 실제 .ora파일이 아닙니다
geneorama

30

SQL Developer를 엽니 다. 도구-> 환경 설정-> 데이터베이스-> 고급으로 이동 한 다음 Tnsnames 디렉토리를 명시 적으로 설정합니다.

내 TNSNAMES가 올바르게 설정되었고 Toad, SQL * Plus 등에 연결할 수 있었지만 SQL Developer가 작동하도록하려면이 작업을 수행해야했습니다. 설치가 너무 힘들었 기 때문에 아마도 Win 7 문제 였을 것입니다.


수락 된 답변은 저에게 효과가 없었지만 작동했습니다 (Windows Server 2008R2)
Josh Werts 2015-06-09

같은 문제가 있었지만 SQL Developer는 % TNS_ADMIN % \ tnsnames.ora보다 먼저 % userprofile % \ tnsnames.ora를 살펴 보았고 여기에 추가 tnsnames.ora 파일이있었습니다.
MBWise

15

에서는 SQLDeveloper 찾아 Tools --> Preferences이미지 아래에 도시 된 바와 같이. tnsnames.ora가

여기에 이미지 설명 입력

있는 환경 설정 옵션 expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory에서 . 다음을 클릭 확인 . 아래 다이어그램과 같이.


여기에 이미지 설명 입력

완료했습니다!

이제 TNSnames 옵션을 통해 연결할 수 있습니다.


"Databse : Advanced"를 찾을 수 없음 ==> 내 버전은 1.5.5
Tarek El-Mallah

1
2.1 이하 버전의 경우 또는 2.1 이상에서 Tnsnames 디렉토리를 지정하지 않은 경우 @JasonAnderson 답변에 지정된대로 휴지하십시오 .
Chandra Sekhar 2013 년

Tools-> Preferences-> Databaes-> Advanced Parameters 메뉴에 Tnsnames Directory 옵션이 없습니다. 나는 SqlDeveloper의 v1.1.3을 사용하고 있습니다
아메 도프

14

연결을 확인하기 위해 TNSPING을 실행하여 사용중인 tnsnames.ora 파일의 위치를 ​​항상 찾을 수 있습니다 (9i 이상).

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

때때로 문제는 tnsnames.ora에서 만든 항목에있는 것이지 시스템이 찾을 수 없다는 것이 아닙니다. 즉, tns_admin 환경 변수를 설정하는 것은 여러 Oracle 홈이있는 시스템에서 정확히 어떤 tnsnames 파일이 사용되는지 결정할 때 발생하는 불가피한 문제를 방지하기 때문에 좋은 일이라는 데 동의합니다.


tnsping 도구를 어떻게 설치할 수 있습니까?
Kiquenet 2011 년

클라이언트 설치에는 데이터베이스 도구 또는 일부에 대한 확인란이 있습니다.
DCookie

2

Jason이 언급 한 단계는 매우 훌륭하며 작동합니다. 그러나 SQL Developer에는 약간의 비틀기가 있습니다. tnsnames.ora 파일을 처음 읽을 때 연결 사양 (호스트, 서비스 이름, 포트)을 캐시합니다. 그러면 tnsname.ora 파일에서 원래 항목이 제거 될 때 사양이 무효화되지 않습니다. 캐시는 SQL Developer가 종료되고 다시 시작된 후에도 유지됩니다. 이것은 상황을 처리하는 비논리적 인 방법이 아닙니다. tnsnames.ora 파일을 일시적으로 사용할 수없는 경우에도 SQL Developer는 원래 사양이 여전히 참인 한 계속 연결할 수 있습니다. 문제는 다음 작은 비틀림과 함께 발생합니다. SQL Developer는 연결을 확인할 때 tnsnames.ora 파일의 서비스 이름을 대소 문자를 구분하는 값으로 처리합니다. 따라서 항목 이름이 ABCD 인 경우. 파일에 world를 추가하고 abcd.world라는 새 항목으로 바꾸면 SQL Developer는 ABCD.world에 대한 연결 사양을 업데이트하지 않습니다. abcd.world를 모두 다른 연결로 취급합니다. Oracle 제품이 명시 적으로 대소 문자를 구분하지 않는 오라클 개발 파일 형식의 내용을 대소 문자를 구분하는 것으로 취급하는 것이 놀랍지 않은 이유는 무엇입니까?


@allen :이 목록을 지우도록 강제하는 방법을 알고 있습니까? 그렇다면 stackoverflow.com/q/6412559/168646
David Oneill에

1

Sql Developer에서 Tools-> preferences-> Datababae-> advanced-> Set Tnsname 디렉터리를 tnsnames.ora가 포함 된 디렉터리로 설정합니다.


0

위의 변경 사항 중 어느 것도 제 경우에는 차이가 없었습니다. 명령 창에서 TNS_PING을 실행할 수 있지만 SQL Developer는 tnsnames.ora가 어디에 있는지 파악하지 못했습니다.

필자의 경우 (Windows 7-64 비트-Enterprise) 문제는 Oracle 설치 프로그램이 시작 메뉴 바로 가기가 잘못된 버전의 SQL Developer를 가리켰다는 것입니다. 설치 프로그램과 함께 제공되는 세 개의 SQL Developer 인스턴스가있는 것으로 보입니다. 하나는 % ORACLE_HOME % \ client_1 \ sqldeveloper \에 있고 두 개는 % ORACLE_HOME % \ client_1 \ sqldeveloper \ bin \에 있습니다.

설치 프로그램은 단순히 작동하지 않는 bin 디렉토리의 버전을 가리키는 시작 메뉴 바로 가기를 설치했습니다. SQL Developer를 시작할 때마다 암호를 묻습니다. 제가 선택한 사항을 기억하지 못하고 TNS를 연결 메커니즘으로 선택할 때 빈 목록을 표시했습니다. 또한 다른 게시물에서 참조 된 데이터베이스 고급 설정에 TNS 디렉토리 필드가 없습니다.

이전 시작 바로 가기를 버리고 % ORACLE_HOME % \ client_1 \ sqldeveloper \ sqldeveloper.exe 바로 가기를 설치했습니다. 그 변경으로 제 경우 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.