문제

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 이름이 옵션으로 표시되지 않습니다.

내가 놓친 것이 있나요?

도움이 되었습니까?

해결책

SQL 개발자는 tnsnames.ora 파일을 위해이 순서로 다음 위치를 살펴 봅니다.

  1. $ home/.tnsnames.ora
  2. $ tns_admin/tnsnames.ora
  3. 레지스트리의 TNS_ADMIN 조회 키
  4. /etc/tnsnames.ora (비 창)
  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. 호출되는 환경 변수를 정의하십시오 TNS_ADMIN tnsnames.ora 파일이 포함 된 폴더를 가리키기 위해

    Windows에서는 탐색하여 수행됩니다 제어판 > 체계 > 고급 시스템 설정 > 환경 변수...

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

  2. OS 가이 환경 변수를 인식하고 있음을 확인하십시오

    Windows 명령 줄에서 : echo %tns_admin %

    Linux에서 : echo $ tns_admin

  3. SQL 개발자를 다시 시작하십시오

  4. 이제 SQL 개발자에서 마우스 오른쪽 버튼을 클릭하십시오 사이 그리고 선택하십시오 새로운 연결 .... 고르다 TNS 드롭 다운 상자의 연결 유형으로 tnsnames.ora의 항목이 이제 여기에 표시되어야합니다.

다른 팁

열린 SQL 개발자. 도구로 이동 -> 환경 설정 -> 데이터베이스 -> 고급 TNSNAMES 디렉토리를 명시 적으로 설정하십시오.

내 tnsnames는 올바르게 설정되었고 Toad, SQL*Plus 등에 연결할 수 있었지만 SQL 개발자가 작동하도록해야했습니다. 아마도 설치하는 것이 고통 이었기 때문에 승리 7 문제 일 것입니다.

연결을 확인하기 위해 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 파일을 정확하게 결정할 때 발생하는 피할 수 없는 문제를 방지하기 때문입니다.

~ 안에 sqldeveloper 검색 Tools --> Preferences, 아래 이미지에 표시된대로.

enter image description here

에서 선호도 옵션 expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory 어디 tnsnames.ora 현재.
그런 다음 클릭하십시오 확인.
아래 다이어그램에 표시된대로.

enter image description here

당신은 끝났습니다!

이제 당신은 그것을 통해 연결할 수 있습니다 tnsnames 옵션.

Jason이 언급 한 단계는 매우 좋고 효과가 있어야합니다. 그러나 SQL 개발자에게는 약간의 비틀림이 있습니다. 연결 사양 (호스트, 서비스 이름, 포트)을 처음으로 tnsnames.ora 파일을 읽을 때 캐시합니다. 그런 다음 원래 항목이 tnsname.ora 파일에서 제거되면 사양을 무효화하지 않습니다. SQL 개발자가 종료되고 다시 시작된 후에도 캐시가 지속됩니다. 이것은 상황을 처리하는 비논리적 인 방법이 아닙니다. tnsnames.ora 파일을 일시적으로 사용할 수 없더라도 SQL 개발자는 원래 사양이 여전히 사실 인 한 여전히 연결할 수 있습니다. 문제는 다음 작은 트위스트와 함께 제공됩니다. SQL Developer는 연결을 해결할 때 Tnsnames.ora 파일의 서비스 이름을 TNSNAMES.ORA 파일의 대용 값으로 취급합니다. 따라서 파일에 항목 이름 ABCD.World를 가지고 있었고 ABCD.World라는 새 항목으로 대체 한 경우 SQL 개발자는 ABCD.World의 연결 사양을 업데이트하지 않습니다. ABCD.World를 다른 것으로 취급합니다. 연결. Oracle 제품이 명시 적으로 사례에 민감하지 않은 Oracle 개발 파일 형식의 내용을 대변인으로 취급한다는 사실에 놀라지 않는 이유는 무엇입니까?

SQL Developer에서 Navidate to Tools-> preverences-> datababae-> advanced-> tnsname 디렉토리를 tnsnames.ora를 포함하는 디렉토리로 설정하십시오.

위의 변경 사항 중 어느 것도 내 경우에는 아무런 차이가 없었습니다. 명령 창에서 tns_ping을 실행할 수 있었지만 SQL 개발자는 tnsnames.ora가 어디에 있는지 알 수 없었습니다.

내 경우 (Windows 7-64 비트 -엔터프라이즈)의 문제는 Oracle Installer가 시작 메뉴 바로 가기를 잘못된 버전의 SQL Developer에 지적했다는 것입니다. 설치 프로그램과 함께 3 개의 SQL 개발자 인스턴스가있는 것으로 보입니다. 하나는 %oracle_home % client_1 sqldeveloper 이고 2는 %oracle_home % client_1 sqldeveloper bin 입니다.

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

구식 바로 가기를 던지고 %oracle_home % client_1 sqldeveloper sqldeveloper.exe에 바로 가기를 설치했습니다. 그 변화는 제 경우 문제를 해결했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top