Java JDBC - Cómo conectarse a Oracle utilizando el nombre del servicio en lugar del SID
Tengo una aplicación Java que utiliza JDBC (a través de JPA) que se conectaba a una base de datos de desarrollo utilizando el nombre de host, el puerto y el SID de Oracle, así:
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ era el SID de Oracle. Ahora necesito conectarme a una base de datos Oracle diferente que no utiliza un SID, pero utiliza un Oracle "Service Name" en su lugar.
He intentado esto pero no funciona:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD es el nombre del servicio de la otra base de datos.
¿Qué estoy haciendo mal?
240
3
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
Los nombres de servicio de estilo Thin son soportados únicamente por el controlador JDBC Thin. La sintaxis es:
Por ejemplo:
Así que yo probaría:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
Además, según la respuesta de Robert Greathouse, también puede especificar el nombre del TNS en la URL JDBC como se indica a continuación:
También puede especificar el nombre del TNS en la URL JDBC como se indica a continuación
Prueba esto:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Editar: por el comentario de abajo esto es realmente correcto:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(nota el//
)Aquí hay un enlace a un artículo útil