Ich versuche, mit SQL Developer eine Verbindung zu einer Oracle-Datenbank herzustellen.
Ich habe die .Net Oracle-Treiber installiert und die tnsnames.ora
Datei bei platziert
C:\Oracle\product\11.1.0\client_1\Network\Admin
Ich verwende das folgende Format in tnsnames.ora:
dev =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = idpdev2)
)
)
Wenn ich in SQL Developer versuche, eine neue Verbindung herzustellen, werden keine TNS-Namen als Optionen angezeigt.
Fehlt mir etwas?
$TNS_ADMIN
Ist das.ora
Öffnen Sie SQL Developer. Gehen Sie zu Extras -> Einstellungen -> Datenbanken -> Erweitert. Legen Sie dann das Tnsnames-Verzeichnis explizit fest
Mein TNSNAMES war korrekt eingerichtet und ich konnte eine Verbindung zu Toad, SQL * Plus usw. herstellen, musste dies jedoch tun, damit SQL Developer funktioniert. Vielleicht war es ein Win 7-Problem, da die Installation ebenfalls schwierig war.
quelle
Durchsuchen Sie in SQLDeveloper
Tools --> Preferences
, wie in der folgenden Abbildung gezeigt.In den Einstellungen , in
expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
denen tnsnames.ora vorhanden ist.Klicken Sie dann auf OK .
wie in der folgenden Abbildung gezeigt.
Jetzt können Sie über die TNSnames- Optionen eine Verbindung herstellen.
quelle
Sie können jederzeit den Speicherort der verwendeten Datei tnsnames.ora ermitteln, indem Sie TNSPING ausführen, um die Konnektivität zu überprüfen (9i oder höher):
Manchmal liegt das Problem bei dem Eintrag, den Sie in tnsnames.ora vorgenommen haben, nicht darin, dass das System ihn nicht finden kann. Trotzdem stimme ich zu, dass das Setzen einer Umgebungsvariablen tns_admin eine gute Sache ist, da dadurch die unvermeidlichen Probleme vermieden werden, die auftreten, wenn genau bestimmt wird, welche tnsnames-Datei in Systemen mit mehreren Oracle-Häusern verwendet wird.
quelle
Die von Jason erwähnten Schritte sind sehr gut und sollten funktionieren. Bei SQL Developer gibt es jedoch eine kleine Wendung. Beim ersten Lesen der Datei tnsnames.ora werden die Verbindungsspezifikationen (Host, Dienstname, Port) zwischengespeichert. Dann werden die Spezifikationen nicht ungültig, wenn der ursprüngliche Eintrag aus der Datei tnsname.ora entfernt wird. Der Cache bleibt auch nach Beendigung und Neustart von SQL Developer bestehen. Dies ist keine so unlogische Art, mit der Situation umzugehen. Auch wenn eine tnsnames.ora-Datei vorübergehend nicht verfügbar ist, kann SQL Developer die Verbindung herstellen, solange die ursprünglichen Spezifikationen noch zutreffen. Das Problem kommt mit ihrer nächsten kleinen Wendung. SQL Developer behandelt Dienstnamen in der Datei tnsnames.ora beim Auflösen der Verbindung als Werte, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Wenn Sie also früher einen Eintragsnamen ABCD hatten. world in der Datei und Sie haben sie durch einen neuen Eintrag mit dem Namen abcd.world ersetzt. SQL Developer würde seine Verbindungsspezifikationen für ABCD.world NICHT aktualisieren. Abcd.world wird insgesamt als eine andere Verbindung behandelt. Warum wundert es mich nicht, dass ein Oracle-Produkt den Inhalt eines von Oracle entwickelten Dateiformats, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, als Groß- und Kleinschreibung behandelt?
quelle
Navigieren Sie in SQL Developer zu Extras-> Einstellungen-> Datenbanken-> Erweitert-> Verzeichnis Tnsname auf das Verzeichnis setzen, das tnsnames.ora enthält
quelle
Keine der oben genannten Änderungen hat in meinem Fall einen Unterschied gemacht. Ich konnte TNS_PING im Befehlsfenster ausführen, aber SQL Developer konnte nicht herausfinden, wo sich tnsnames.ora befand.
Das Problem in meinem Fall (Windows 7 - 64 Bit - Enterprise) war, dass das Oracle-Installationsprogramm die Verknüpfung zum Startmenü auf die falsche Version von SQL Developer verwies. Es scheint drei SQL Developer-Instanzen zu geben, die dem Installationsprogramm beiliegen. Eine befindet sich in% ORACLE_HOME% \ client_1 \ sqldeveloper \ und zwei in% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.
Das Installationsprogramm installierte eine Verknüpfung zum Startmenü, die auf eine Version im bin-Verzeichnis zeigte, die einfach nicht funktionierte. Bei jedem Start von SQL Developer wurde nach einem Kennwort gefragt. Ich erinnere mich nicht an die von mir getroffenen Entscheidungen und zeigte eine leere Liste an, als ich TNS als Verbindungsmechanismus auswählte. Das Feld TNS-Verzeichnis in den erweiterten Datenbankeinstellungen, auf die in anderen Beiträgen verwiesen wird, ist ebenfalls nicht vorhanden.
Ich warf die alte Startverknüpfung weg und installierte eine Verknüpfung zu% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Diese Änderung hat das Problem in meinem Fall behoben.
quelle