Java JDBC - Come connettersi a Oracle usando il nome del servizio invece del SID
Ho un'applicazione Java che usa JDBC (via JPA) che si connetteva a un database di sviluppo usando hostname, porta e Oracle SID, come questo:
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ era il SID Oracle. Ora ho bisogno di connettermi a un diverso database Oracle che non usa un SID, ma usa un Oracle "Service Name" invece.
Ho provato questo ma non funziona:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD è il nome del servizio dell'altro database.
Cosa sto facendo di sbagliato?
240
3
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
Sintassi del nome del servizio in stile sottile
I nomi di servizio in stile Thin sono supportati solo dal driver JDBC Thin. La sintassi è:
@//host_name:port_number/service_name
Quindi proverei:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
Inoltre, secondo la risposta di Robert Greathouse, puoi anche specificare il nome TNS nell'URL JDBC come segue:
Potete anche specificare il nome del TNS nell'URL JDBC come segue
Prova questo: jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCDjdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD<
Modifica: secondo il commento qui sotto questo è effettivamente corretto:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(nota il//
)Qui c'è un link ad un utile articolo