web-dev-qa-db-de.com

ORA-12154: TNS: Die angegebene Verbindungskennung konnte nicht aufgelöst werden (PLSQL Developer)

Ich muss PLSQL Developer verwenden, um auf Oracle-Datenbanken zuzugreifen. Ich erhalte die folgende Fehlermeldung, wenn ich versuche, eine Verbindung zu meiner Datenbank herzustellen. ORA-12154: TNS:could not resolve the connect identifier specified. Ich kann SQLPLUS über die Befehlszeile verwenden, um eine Verbindung zur Datenbank herzustellen, und tnsping kehrt erfolgreich zurück, aber ich kann nicht herausfinden, warum PLSQL Developer nicht funktioniert - er verwendet das Recht tnsnames.ora Datei, und die Verbindungszeichenfolge dort ist korrekt, weil es die gleiche ist, die tnsping Verwendet.

Hat jemand eine Idee, was ich tun kann, um das Problem zu beheben? Ich habe andere Threads über diesen spezifischen Fehler ohne Glück angeschaut.

tnsnames.ora

    ORCL =
      (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(Host = MININT-AIVKVBM)(PORT = 1521)) 
      (CONNECT_DATA = 
        (SERVER = DEDICATED) 
        (SERVICE_NAME = orcl)
      )
    )

sqlnet.ora

     SQLNET.AUTHENTICATION_SERVICES= (NTS)
     NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

sqlpus BefehlszeileBild hier

PLSQL Developer Connection-Einstellungen: Bild hier

5
ZakTaccardi

Die Antwort bestand einfach darin, den PLSQL Developer-Ordner aus dem Ordner "Program Files (x86)" in den Ordner "Program Files" zu verschieben - komisch!

27
ZakTaccardi

Dieser Fehler tritt sehr häufig auf, häufig beim ersten Versuch, eine Verbindung zu Ihrer Datenbank herzustellen. Ich empfehle diese 6 Schritte, um den ORA-12154 zu reparieren:

  1. Überprüfen Sie, ob der Instanzname in tnsnames.ora korrekt eingegeben wurde. 
  2. Am Ende des Instanz- oder Datenbanknamens sollten sich keine Steuerzeichen befinden.
  3. Alle Paranthesis um den TNS-Eintrag sollten ordnungsgemäß beendet werden
  4. Der Eintrag des Domänennamens in sqlnet.ora sollte nicht mit dem vollständigen Datenbanknamen in Konflikt stehen.
  5. Wenn das Problem weiterhin besteht, versuchen Sie, den TNS-Eintrag in tnsnames.ora neu zu erstellen.
  6. Zum Schluss können Sie mit dem Konfigurationsdienstprogramm SQL * Net Easy neue Einträge hinzufügen.

Für weitere Informationen: http://turfybot.free.fr/Oracle/11g/errors/ORA-12154.html

3
tufy

Da ich keinen Kommentar hinzufügen kann, habe ich nur gedacht, ich würde dies zur Fertigstellung posten. Die Antwort von tufy ist richtig, es geht um Klammern im Pfad zur ausgeführten Anwendung.

Es gibt einen Netzwerkfehler, bei dem die Netzwerkebene Nicht in der Lage ist, Programmspeicherorte mit Klammern im Pfad Zu der ausführbaren Datei zu analysieren, die versucht, eine Verbindung zu Oracle herzustellen.

Mit Oracle hinterlegt, bezieht sich der Bug 3807408 auf diesen Fehler.

Quelle

1
Dave Salomon

kopieren Einfügen pl SQL-Entwickler in Programmdateien x86 und Programmdateien. Wenn der Client in einer anderen Partition/einem anderen Laufwerk installiert ist, kopieren Sie auch den SQL-Entwickler auf dieses Laufwerk. und von pl SQL-Entwicklerordner statt Desktop-Verknüpfung ausführen. 

ultimative Lösung ! Ausruhen

1
khayam

Für mich war es eine schlechte Formatierung der Verbindungskennung tnsnames.ora. Die Einrückung der Bezeichnerzeichenfolge ist erforderlich, wie im Beispiel tnsnames.ora im Kommentar gezeigt.

0
Jan Matousek

JUST Kopieren und Einfügen von tnsnames- und sqlnet-Dateien aus dem Oracle-Home-Ordner im Hauptordner von PLSQL Developer

wählen Sie substr (file_spec, 1, instr (file_spec, '\', -1, 2) -1) Oracle_HOME aus dba_libraries aus, wobei Bibliotheksname = 'DBMS_SUMADV_LIB';

0
Alok

Ich hatte das gleiche Problem mit einem VM, auf dem CentOS7 und Oracle 11GR2 ausgeführt wurden, die von Windows 7 aus zugänglich waren. Die Lösung war seltsam. Auf meinem lokalen Computer hatten die Tnsnames, die auf die DB verweisen, ein Leerzeichen vor dem Dienstnamen, den ich gerade gelöscht habe den raum und dann konnte ich mich verbinden.

Ein schnelles Beispiel.

Falsche tnsnames.

[Dies ist ein leeres Feld] XE = (DESCRIPTION = (ADRESSE = (PROTOCOL = TCP) (Host = 127.0.0.1) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC_FOR_XE)) (CONNECT_DATA.) = (SID = PLSExtProc) (PRÄSENTATION = RO) ) )

Richtige tnsnames.

XE = (DESCRIPTION = (ADRESSE = (PROTOKOLL = TCP) (Host = 127.0.0.1) (PORT = 1521)) (CONNECT_DATA = ( SERVER = DEDICATED) (SERVICE_NAME = XE) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC_FOR_XE)) (CONNECT_DATA.) = (SID = PLSExtProc) (PRÄSENTATION = RO) ) )

0
sandatomo

Zusätzlich zu den oben genannten Lösungen überprüfen Sie mit Auch den Ort, an dem die Tnsname- oder eine Datei vorhanden ist, und vergleichen Sie sie mit dem Pfad in der Umgebungsvariablen

0
venky_ferrari

Ich hatte ein Problem bei der Arbeit. Der Oracle-Server wurde "gepatcht" und eine der Datenbanken, die ich verwende, konnte nicht über den Eintrag TNSNames, sondern über die Basisverbindung hergestellt werden. Die Datenbank war in Betrieb, und der Administrator konnte sehen, dass sie betriebsbereit war.

Außerdem funktioniert jede Anwendung, die TNS für die Verbindung zur Datenbank verwendet, ebenfalls nicht.

Das Problem bestand darin, dass der Datenbankname in der TNS-Datei nicht korrekt war, aber aus irgendeinem Grund funktioniert er seit Jahren. Durch die Korrektur des Namens wurde der Fehler behoben. Ich habe festgestellt, dass Oracle SQL Developer den alten TNS-Eintrag auch nach der Aktualisierung verwendet hat, und ich habe keine Lust, ihn nur für eine DB-Verbindung neu zu installieren. Es scheint, als hätte die Datenbank bei der Erstellung einen kleineren Namen als die anderen erhalten, und durch einige Aktionen zum Ausschneiden und Einfügen in der TNSNames-Datei wurde sie gemischt. Niemand ist sicher, wie es funktioniert, während wir es untersuchen, aber der Oracle-Patch sorgte dafür, dass der Name korrekt sein musste

Ein Beispiel für den Namen war "DBName.Part1.Part2", aber der DB-Name war "DBName".

0
user2960847
  • Es funktionierte nicht, also wechselte ich zum Oracle-SQL-Entwickler und funktionierte Ohne Probleme (Verbindung unter 1 Minute herstellend).
  • Dieser Link gab mir eine Idee Verbindung zu MS Access Also habe ich einen Benutzer in Oracle SQL-Entwickler erstellt und versucht, in Toad Eine Verbindung dazu herzustellen, und es hat funktioniert.

Oder zweite Lösung

sie können versuchen, eine Verbindung über Direct und nicht über TNS herzustellen, indem Sie Host und Port im Verbindungsbildschirm von Toad angeben

0
shareef

Ich wollte nur hinzufügen - anscheinend kann dies auch dadurch verursacht werden, dass Instant Client für 10 installiert wird und dann die vollständige Installation und die erneute Installation in einem parallelen Verzeichnis vorgenommen werden. Ich weiß nicht, warum das kaputt gegangen ist.

0
TallDave