Użyj tnsnames.ora w Oracle SQL Developer

137

Oceniam Oracle SQL Developer .

My tnsnames.orajest wypełnione, a tnspingdo połączenia zdefiniowanego w tnsnames.oradziale działa prawidłowo. Mimo to SQL Developer nie wyświetla żadnych połączeń.

Oracle SQL Developer Soars wspomina, że ​​jeśli

jeśli masz oprogramowanie klienckie Oracle i plik tnsnames.ora już zainstalowany na komputerze, Oracle SQL Developer automatycznie wypełni nawigator Connections na podstawie nazw usług sieciowych zdefiniowanych w tnsnames.ora.

Próbowałem również ustawić TNS_ADMINzmienną środowiskową, ale po ponownym uruchomieniu SQL Developer nadal nie są wyświetlane żadne połączenia.

Jakieś pomysły?
Czy ktoś pomyślnie współpracuje z SQL Developer i tnsnames.ora?

Peter Lang
źródło
Pobrałem i zainstalowałem program Oracle SQL Developer, aby połączyć się z już istniejącą bazą danych Oracle 11g. Wygląda jednak na to, że będę musiał również pobrać i zainstalować oprogramowanie klienckie Oracle, którego używam, jeśli mam system Windows 10?
VoodooChild

Odpowiedzi:

219
  • W SQLDeveloper przeglądaj Tools --> Preferences, jak pokazano na poniższym obrazku.

    Preferencje dostępu SQLDeveloper

  • W opcjach Preferencji,expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory gdzie obecny jest tnsnames.ora .
  • Następnie kliknij OK , jak pokazano na poniższym schemacie.
    tnsnames.ora dostępne pod adresemDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    Katalog tnsnames aktualizacji SQLDeveloper

Teraz możesz łączyć się za pomocą opcji TNSnames .

Chandra Sekhar
źródło
4
wszystkim, tylko mała aktualizacja tego starego (ale całkiem pomocnego) postu: nie próbuj używać symbolicznego łącza w systemie Windows. Wydaje się, że programista SQL nie wie, jak go używać. Straciłem trochę czasu. Mam nadzieję, że to uratuje twoje.
Hellday5432,
@ Hellday5432 - Tak, to prawda. SQL Dev działa w Javie, który nie obsługuje skrótów; na przykład podczas otwierania pliku nie możemy użyć skrótu, aby przejść do katalogu.
Kent Pawar,
5
Skrót Windows! = Dowiązanie symboliczne. howtogeek.com/howto/16226/…
Matt Lachman
Pobrałem i zainstalowałem program Oracle SQL Developer, aby połączyć się z już istniejącą bazą danych Oracle 11g. Wygląda jednak na to, że będę musiał również pobrać i zainstalować oprogramowanie klienckie Oracle, którego używam, jeśli mam system Windows 10?
VoodooChild
Nie widzę opcji katalogu Tnsnanes w moim programie SQL Developer w wersji 1.5.5.
Amit Chaurasia
24

Ta doskonała odpowiedź na podobne pytanie (którego wcześniej niestety nie mogłem znaleźć) pomogła mi rozwiązać problem.

Kopiowanie treści z przywoływanej odpowiedzi:

SQL Developer będzie szukał pliku tnsnames.ora w następującej lokalizacji w tej kolejności

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
Klucz wyszukiwania
TNS_ADMIN w rejestrze /etc/tnsnames.ora (inne niż Windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
\ SOFTWARE \ ORACLE_HOME_KEY \ ORACLE \ ORACLE_HOME

Jeśli plik tnsnames.ora nie jest rozpoznawany, wykonaj następującą procedurę:

Zdefiniuj zmienną środowiskową o nazwie TNS_ADMIN, aby wskazywała folder zawierający plik tnsnames.ora.

W systemie Windows można to zrobić, przechodząc do Panelu sterowania> System> Zaawansowane ustawienia systemu> Zmienne środowiskowe ...
W systemie Linux zdefiniuj zmienną TNS_ADMIN w pliku .profile w katalogu domowym.

Upewnij się, że system operacyjny rozpoznaje tę zmienną środowiskową

Z wiersza poleceń systemu Windows: echo% TNS_ADMIN%

Z linuxa: echo $ TNS_ADMIN

Zrestartuj SQL Developer Teraz w SQL Developer kliknij prawym przyciskiem myszy Connections i wybierz New Connection .... Wybierz TNS jako typ połączenia w rozwijanym polu. Twoje wpisy z tnsnames.ora powinny teraz zostać wyświetlone tutaj.

Peter Lang
źródło
3
Wiem, że minęło trochę czasu, ale czy możesz wyciągnąć tutaj odpowiednią część odpowiedzi? Na wypadek gdyby ta odpowiedź (lub nawet pytanie) kiedykolwiek została usunięta.
Dennis Meng
1
zasadniczo zaokrągla się do ustawienia zmiennej systemowej TNS_ADMIN (ponieważ SQL Developer wyszukuje tam ~ najpierw) i po ponownym uruchomieniu SQL Developer, wybraniu New Connection i na liście rozwijanej Connection Type, zamiast Basic, wybranie TNS - so - tnsnames jest widoczne w porządku, ale nie powinieneś oczekiwać, że połączenia będą wypełniane automatycznie (tak było w moim przypadku)
hello_earth
poszukiwanie zajęło mi ją, więc zaktualizowałem odpowiedź, ponieważ jest już odniesienie do autora @DennisMeng
TheGameiswar
7

Miałem ten sam problem, tnsnames.oradziałało dobrze ze wszystkimi innymi narzędziami, ale SQL Developer nie chciał go używać. Wypróbowałem wszystkie sugestie w sieci, które mogłem znaleźć, w tym rozwiązania z linku podanego tutaj.
Nic nie działało.

Okazuje się, że baza danych została buforowanie kopii zapasowych tnsnames.orajak tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bkitp Pliki te nie były czytelne dla przeciętnego użytkownika.

Podejrzewam, że sqldeveloper dopasowuje wzorzec dla nazwy i próbował odczytać jedną z tych kopii zapasowych, ale nie mógł. Więc to po prostu zawodzi z wdziękiem i nie pokazuje nic na liście rozwijanej.

Rozwiązaniem jest umożliwienie odczytu wszystkich plików lub usunięcie lub przeniesienie kopii zapasowych poza katalog administratora.

Jim
źródło
To prawdopodobnie dokładnie to, co widzisz. SQL Plus i SQL Developer widzą / analizują / odczytują nazwy tnsnames - więc jeśli jest zły, może to spowodować kaskadę i problem.
thatjeffsmith
0

W nowszych wersjach macOS trzeba też ustawić java.library.path. Najłatwiejszym / najbezpieczniejszym sposobem na to [1] jest utworzenie ~/.sqldeveloper/<version>/sqldeveloper.confpliku i wypełnienie go w ten sposób:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

dinvlad
źródło