Próbuję połączyć się z bazą danych Oracle za pomocą programu SQL Developer.
Zainstalowałem sterowniki .Net oracle i umieściłem tnsnames.ora
plik pod adresem
C:\Oracle\product\11.1.0\client_1\Network\Admin
Używam następującego formatu w tnsnames.ora:
dev =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = idpdev2)
)
)
W SQL Developer, kiedy próbuję utworzyć nowe połączenie, żadne nazwy TNS nie pojawiają się jako opcje.
Czy jest coś, czego mi brakuje?
$TNS_ADMIN
czy KATALOG nie jest aktualnym.ora
plikiemOpen SQL Developer. Przejdź do Narzędzia -> Preferencje -> Bazy danych -> Zaawansowane Następnie jawnie ustaw katalog Tnsnames
Mój TNSNAMES został poprawnie skonfigurowany i mogłem połączyć się z Toad, SQL * Plus itp., Ale musiałem to zrobić, aby SQL Developer działał. Być może był to problem z Win 7, ponieważ instalacja była trudna.
źródło
W SQLDeveloper przeglądaj
Tools --> Preferences
, jak pokazano na poniższym obrazku.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.
Teraz możesz łączyć się za pomocą opcji TNSnames .
źródło
Zawsze możesz sprawdzić lokalizację pliku tnsnames.ora, który jest używany, uruchamiając TNSPING w celu sprawdzenia łączności (9i lub nowszej):
Czasami problem dotyczy wpisu, który wprowadziłeś w tnsnames.ora, a nie tego, że system nie może go znaleźć. To powiedziawszy, zgadzam się, że posiadanie zestawu zmiennej środowiskowej tns_admin jest dobrą rzeczą, ponieważ pozwala uniknąć nieuniknionych problemów, które pojawiają się przy określaniu, który plik tnsnames jest używany w systemach z wieloma domami wyroczni.
źródło
Kroki wymienione przez Jasona są bardzo dobre i powinny działać. Jest jednak mały zwrot w przypadku SQL Developer. Buforuje specyfikacje połączenia (host, nazwa usługi, port) podczas pierwszego odczytu pliku tnsnames.ora. Następnie nie unieważnia specyfikacji, gdy oryginalny wpis zostanie usunięty z pliku tnsname.ora. Pamięć podręczna utrzymuje się nawet po zakończeniu i ponownym uruchomieniu programu SQL Developer. Nie jest to taki nielogiczny sposób radzenia sobie z sytuacją. Nawet jeśli plik tnsnames.ora jest tymczasowo niedostępny, program SQL Developer może nadal nawiązać połączenie, o ile oryginalne specyfikacje są nadal aktualne. Problem pojawia się z kolejnym małym zwrotem akcji. SQL Developer traktuje nazwy usług w pliku tnsnames.ora jako wartości z uwzględnieniem wielkości liter podczas rozpoznawania połączenia. Więc jeśli miałeś nazwę wpisu ABCD. world w pliku i zastąpiłeś go nowym wpisem o nazwie abcd.world, SQL Developer NIE zaktualizowałby swoich specyfikacji połączenia dla ABCD.world - potraktuje abcd.world jako zupełnie inne połączenie. Dlaczego nie dziwi mnie, że produkt Oracle będzie traktował jako rozróżniającą wielkość liter zawartość formatu pliku opracowanego przez Oracle, w którym wielkość liter nie jest rozróżniana?
źródło
W Sql Developer przejdź do Narzędzia-> Preferencje-> Bazy danych-> Zaawansowane-> Ustaw katalog Tnsname na katalog zawierający tnsnames.ora
źródło
Żadna z powyższych zmian nie zrobiła różnicy w moim przypadku. Mogłem uruchomić TNS_PING w oknie poleceń, ale SQL Developer nie mógł dowiedzieć się, gdzie jest tnsnames.ora.
Problem w moim przypadku (Windows 7 - 64 bit - Enterprise) polegał na tym, że instalator Oracle wskazał skrót menu Start na niewłaściwą wersję SQL Developer. Wygląda na to, że instalatorowi towarzyszą trzy wystąpienia SQL Developer. Jeden znajduje się w% ORACLE_HOME% \ client_1 \ sqldeveloper \, a dwa w% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.
Instalator zainstalował skrót w menu Start, który wskazywał wersję w katalogu bin, która po prostu nie działała. Pytał o hasło za każdym razem, gdy uruchamiałem SQL Developer, nie pamiętając wyborów, których dokonałem i wyświetlał pustą listę, gdy wybrałem TNS jako mechanizm połączenia. Nie ma również pola Katalog TNS w zaawansowanych ustawieniach bazy danych, do których odwołują się inne posty.
Rzuciłem stary skrót Start i zainstalowałem skrót do% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Ta zmiana rozwiązała problem w moim przypadku.
źródło