Ich weiß, dass dies eine alte Frage ist, aber immer noch unbeantwortet. Ich habe einen Tag lang recherchiert, aber zumindest in meinem Fall (Oracle 11.2 unter Windows 2008 R2) habe ich die einfachste Lösung gefunden und wollte sie teilen.
Der Fehler zeigt bei direkter Betrachtung an, dass der Listener den Dienstnamen nicht erkennt. Aber wo werden die Servicenamen aufbewahrt? Im%ORACLE_HOME%\NETWORK\ADMIN\listener.ora
Die "SID_LIST" ist genau das, eine Liste von SIDs und Dienstnamen, die in einem Format gepaart sind, das Sie kopieren oder nachschlagen können.
Ich habe das Problem Dienstname hinzugefügt und dann in der Windows-Systemsteuerung "Dienste" einen "Neustart" für den Oracle-Listener-Dienst durchgeführt. Jetzt ist alles gut.
Beispielsweise könnte Ihre listener.ora-Datei zunächst folgendermaßen aussehen:
# listener.ora Network Configuration File: C:\app\oracle_user\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle_user\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
... Und damit ein Dienstname von erkannt wird orcl
, können Sie ihn ändern in:
# listener.ora Network Configuration File: C:\app\oracle_user\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle_user\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = C:\app\oracle_user\product\12.1.0\dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)