Instalé Oracle 11g Express Edition Release 2 en mi sistema operativo Windows 7 de 64 bits e intenté ejecutar el programa JDBC, luego recibí el siguiente error:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28)
at Lab3O.main(Lab3O.java:15)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 8 more
Respuestas:
Solucioné este problema corrigiendo mi cadena jdbc.
Por ejemplo, la cadena jdbc correcta debería ser ...
Pero la cadena jdbs que estaba usando es ...
(Nota: entre
1521
yXE
debe ser a/
)Esta cadena jdbc incorrecta también me da un error ORA-12505.
fuente
Hay algunas cosas que pueden causar este problema, pero antes de comenzar con JDBC, debe asegurarse de que puede conectarse a la base de datos utilizando SQL * Plus. Si no está familiarizado con SQL * Plus, es una herramienta de línea de comandos para conectarse a bases de datos Oracle que ha sido una parte estándar de Oracle durante mucho tiempo y se incluye con Oracle XE.
Cuando se conecta a una base de datos Oracle utilizando JDBC, no se conecta directamente a la base de datos. En cambio, te conectas a un oyente TNS, que luego te conecta a la base de datos. El error
ORA-12505
significa que el oyente estaba activo y usted podía conectarse a él, pero no pudo conectarse a la base de datos porque no sabe que esa base de datos está activa. Hay dos razones para esto:ORA-12505 significa que el oyente conoce esa base de datos, pero no ha recibido una notificación de la base de datos de que la base de datos está activa. (Si intentaba conectarse a la base de datos incorrecta, utilizando el SID incorrecto, obtendría un error ORA-12154 "TNS: no se pudo resolver el identificador de conexión especificado").
¿Qué servicios de Oracle se ejecutan en el complemento Servicios? (Abra esto desde el Panel de control> Herramientas administrativas> Servicios, o simplemente Inicio> Ejecutar>
services.msc
.) Necesita los servicios OracleServiceXE y OracleXETNSListener para ejecutarse.Si ambos servicios se han iniciado, ¿puede conectarse a la base de datos en SQL * Plus utilizando cualquiera de los siguientes en el símbolo del sistema? (Supongo que está ejecutando estos en la máquina en la que ha instalado Oracle XE)
(Reemplace
system-password
con la contraseña que configuró para los usuarios de SYS y SYSTEM durante la instalación de Oracle XE).El primero de estos tres se conecta a través del oyente TNS, pero los segundos dos se conectan directamente a la base de datos sin pasar por el oyente, y solo funcionan si está en la misma máquina que la base de datos. Si el primero falla pero los otros dos tienen éxito, entonces las conexiones JDBC también fallarán. Si es así, conéctese a la base de datos utilizando cualquiera de los otros dos y ejecute
ALTER SYSTEM REGISTER
. Luego salga de SQL * Plus e intente el primer formulario nuevamente.Si el tercero falla pero el segundo funciona, agregue su cuenta de usuario al grupo ora_dba. Haga esto en Panel de control> Administración de equipos> Usuarios y grupos locales.
Una vez que pueda obtener conexiones del formulario
para trabajar, debe poder conectarse a Oracle XE a través de JDBC. (Por cierto, no nos ha mostrado el código JDBC que está utilizando para conectarse a la base de datos, pero sospecho que probablemente sea correcto; habría otros errores si algunas partes de la cadena de conexión estuvieran mal).
fuente
SP2-0734: unknown command beginning "system/ora..." - rest of line ignored.
en los 3system/ora...
(o SQL * Plus leyó esa línea desde un archivo que le había dicho que leyera). Las líneas de comando que di anteriormente están destinadas a ser utilizadas desde una ventana de símbolo del sistema / shell / Terminal. Si ya está ejecutando SQL * Plus, reemplácelosqlplus
conconnect
.Yo también recibí el mismo error, pero cuando lo intenté, los tres fallaron. Si los tres anteriores fallan. Pruebe el estado LSNRCTL si encuentra que falta el servicio (XE en mi caso) intente esto
Ahora puedes ver el servicio
Incluso si no ves prueba este
Esto probablemente debería funcionar ...
fuente
local_listener
, el oyente orcl ahora se muestra enlsnrctl
. ¡Un millón de gracias!ORA-65040: operation not allowed from within a pluggable database
¿qué significa? No se puede configurar el JDBC: /alter system set local_listener = ...
trabajó para mi.Cuando obtiene este error "ORA-12505, TNS: el oyente no conoce actualmente el SID proporcionado en el descriptor de conexión"
Solución: abra Servicios e inicie
OracleServiceXE
, luego intente conectarse ...fuente
Encontré algunas razones para esta excepción. Son
1) El nombre de la base de datos XE de forma predeterminada. Por lo tanto, la URL será " jdbc: oracle: thin: @localhost: 1521: XE ".
2) Asegúrese de que OracleServiceXE, OracleXETNSListener se esté ejecutando. Estará en el Panel de control \ Todos los elementos del Panel de control \ Herramientas administrativas \ Servicios
fuente
Resolví este problema corrigiendo mi código JDBC.
la cadena JDBC correcta debería ser ...
Pero la cadena JDBC que estaba usando era ...
Entonces, el error de especificar orcl en lugar de xe mostró este error ya que el nombre SID era incorrecto.
fuente
conection = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");
funcionó.Mi problema se resuelve cuando uso el siguiente código:
fuente
Ante un error similar, ninguna de las soluciones anteriores ayudó. Hubo un problema en el archivo listner.ora. Por error, agregué
SID
fuera de laSID_LIST
vista a continuación (sección entre las estrellas *).Corregido este error de la siguiente manera:
Detenido y la base de datos
Detuve los oyentes OracleServiceXE y OracleXETNSListener manualmente, ya que no se detuvo automáticamente al ir al Panel de control \ Todos los elementos del Panel de control \ Herramientas administrativas \ Servicios. Reinició la base de datos y funcionó de maravilla.
fuente
Inicialmente vine aquí con el mismo problema. Simplemente instalé Oracle 12c en Windows 8 (64 bits), pero desde entonces lo resolví 'TNSPING xe' en la línea de comando ... Si no se establece la conexión o no se encuentra el nombre, intente con el nombre de la base de datos, en mi caso fue 'orcl' ... 'TNSPING orcl' nuevamente y si suena con éxito, entonces necesita cambiar el SID a 'orcl' en este caso (o cualquier nombre de base de datos que haya utilizado) ...
fuente
Una posibilidad que no he visto ampliamente discutida es que puede haber un problema para resolver el nombre de host en la máquina host. Si no hay una entrada para $ (nombre de host) en / etc / hosts, el oyente de Oracle se confunde y no aparece.
Ese resultó ser mi problema, y agregar el nombre de host y la dirección IP en / etc / hosts resolvió el problema.
fuente
Oracle: sintaxis de nombre de servicio de estilo fino
Los nombres de servicio de estilo delgado solo son compatibles con el controlador JDBC Thin. La sintaxis es:
@ // nombre_host: número_puerto / nombre_servicio
http://docs.oracle.com/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
fuente
Si tiene una conexión que funciona en Oracle SQL Developer, use la información en el menú de conexión para construir su url, como se describe en la siguiente imagen:
En el ejemplo anterior, la url sería:
jdbc:oracle:thin:@ORADEV.myserver.com:1521/myservice
Tenga en cuenta que si está utilizando un SID, entonces hay dos puntos (":") en lugar de una barra diagonal ("/") después del nombre del host.
fuente
Yo también enfrenté el mismo problema. Había instalado Oracle Express edition 10g en el sistema operativo Windows XP usando VMware y estaba funcionando bien. Dado que era muy incómodo escribir consultas SQL en la utilidad SQL proporcionada por 10g y como estaba acostumbrado a trabajar con el desarrollador SQL, instalé un desarrollador SQL de 32 bits en XP e intenté conectarme a mi DB SID "XE". Pero la conexión falló con el oyente de error-ORA-12505 TNS que actualmente no conoce el SID proporcionado en el descriptor de conexión. Estaba en el mar en cuanto a cómo se produjo este problema, ya que funcionaba bien con la utilidad SQL y también había creado algunas asignaciones de Informatica con el mismo. Busqué mucho sobre esto aquí y apliqué las sugerencias que me ofrecieron después de hacer ping al estado de "lsnrctl" en foros públicos, pero fue en vano. Sin embargo, esta mañana intenté crear una nueva conexión nuevamente, y Voila, funcionó sin problemas. Supongo que después de leer en algunas publicaciones que a veces el oyente escucha antes de que el DB se conecte o algo así (perdóneme por mi referencia cruda ya que soy un novato aquí), pero sugiero que reinicie la máquina y verifique nuevamente.
fuente
Tuve el mismo problema, así que para resolver este problema, primero reconfiguré mi oyente usando
netca
después de eso, eliminé mi base de datos anterior que era ORCLdbca
y luego volví a crear la nueva base de datos usandodbca
fuente
Me enfrenté al mismo problema y lo resolví reiniciando el servicio OracleServiceXE. Vaya a Services.msc y luego verifique que el servicio 'OracleServiceXE' esté UP y ejecutándose
fuente
Solucioné este problema cambiando " SID " a " SERVICE_NAME " en mi archivo TNSNAMES.ora.
Verifique si su base de datos solicita SID o SERVICE_NAME.
Salud
fuente
Si usa Oracle Express Edition, debe tener esta url
Tuve un problema similar con el complemento de configuración liquibase en pom.xml. Y cambié mi configuración:
fuente
Conexión con = DriverManager.getConnection ("jdbc: oracle: thin: @localhost: 1521: xe", "scott", "tiger");
Error que obtuve:
java.sql.SQLException: el oyente rechazó la conexión con el siguiente error: ORA-12505, TNS: el oyente actualmente no conoce el SID proporcionado en el descriptor de conexión El descriptor de conexión utilizado por el cliente fue: localhost: 1521: xe
Cómo lo resolví:
Conexión con = DriverManager.getConnection ("jdbc: oracle: thin: localhost: 1521: xe", "scott", "tiger");
(Eliminar @)
No sé por qué, pero está funcionando ahora ...
fuente
Verifique haciendo tnsping y nombre de instancia en la máquina host. Le dará la descripción de tns y la mayoría de las veces el nombre de host es diferente, lo que no coincide.
Resuelvo mi problema igualmente
En la máquina Unix $ tnsping (Enter)
Me da una descripción completa de tns donde descubrí que el nombre de host es diferente .. :)
fuente
Verifique ambos
OracleServiceXE
yOracleXETNSListener
que el estado comience cuando navega porstart->run->services.msc
.Para mi caso, solo
OracleXETNSListener
se inició peroOracleServiceXE
no se inició, cuando comencéright clicking -> start
y verifiqué la conexión, funciona para mífuente
Tuve un problema similar en SQL Workbench.
URL:
jdbc: oráculo: delgado: @ 111.111.111.111: 1111: xe
no funciona
URL:
jdbc: oráculo: delgado: @ 111.111.111.111: 1111: asdb
trabajos.
Esto me ayuda en mi situación concreta. Me temo que podría existir muchas otras razones con diferentes soluciones.
fuente
Tuve un problema similar. El problema comenzó a ocurrir repentinamente: tenemos una URL de conexión de base de datos con carga equilibrada, pero en las conexiones jdbc apuntaba a una sola base de datos directamente.
Cambió a cargar URL de db equilibrada y funcionó.
fuente
En mi caso no estaba funcionando, finalmente reinicié mi oracle y el oyente TNS y todo funcionó. Estuve luchando por 2 días.
fuente
Obtuve este error ORA-12505, TNS: el oyente actualmente no conoce el SID proporcionado en el descriptor de conexión cuando intenté conectarme a Oracle DB usando el desarrollador SQL.
La cadena JDBC utilizada fue jdbc: oracle: thin: @myserver: 1521 / XE , obviamente la correcta y los dos servicios oracle obligatorios OracleServiceXE, OracleXETNSListener estaban en funcionamiento .
La forma en que resolví este problema (en Windows 10)
fuente
Además de ejecutar servicios (OracleServiceXE, OracleXETNSListener), existe la posibilidad de que su software / firewall antivirus pueda bloquearlos. Solo asegúrate de que no estén bloqueados.
fuente
Simplemente lo arreglé reiniciando / iniciando oracleService en los servicios
fuente
Mi oráculo dejó de funcionar y recibí este error. Reinicié mi máquina y también probé las soluciones anteriores. Finalmente, abrí servicios de componentes y reinicié los servicios de Oracle y todo comenzó a funcionar. Espero que esto ayude a alguien.
fuente
Estaba creando el enlace de la base de datos incorrectamente.
Una solución simple para mí fue simplemente cambiar 'SID' a SERVICE_NAME
Cambiando
a
Resuelto mi problema.
fuente