J'ai une application Java qui utilise JDBC (via JPA) qui se connectait à une base de données de développement en utilisant le nom d'hôte, le port et Oracle SID, comme ceci:
jdbc: oracle: thin: @ oracle.hostserver1.mydomain.ca: 1521: XYZ
XYZ était Oracle SID. Maintenant, je dois me connecter à une autre base de données Oracle qui n'utilise pas de SID, mais utilise à la place un "nom de service" Oracle.
J'ai essayé mais ça ne marche pas:
jdbc: oracle: thin: @ oracle.hostserver2.mydomain.ca: 1522: ABCD
ABCD est le nom de service de l'autre base de données.
Qu'est-ce que je fais mal?
la source
jdbc:oracle:thin:USER/PWD@//my.ip.address:1521/SERVICENAME
oujdbc:oracle:thin:@//my.ip.address.1521/SERVICENAME
, avec le nom d'utilisateur et le mot de passe comme arguments pourjdbc.getConnection()
. Toujours déroutant.Il y a donc deux façons simples de faire fonctionner cela. La solution publiée par Bert F fonctionne bien si vous n'avez pas besoin de fournir d'autres propriétés de connexion spécifiques à Oracle. Le format pour cela est:
Cependant, si vous devez fournir d'autres propriétés de connexion spécifiques à Oracle, vous devez utiliser le style long TNSNAMES. J'ai dû le faire récemment pour activer les connexions partagées Oracle (où le serveur fait son propre pool de connexions). Le format TNS est:
Si vous connaissez le format de fichier Oracle TNSNAMES, cela devrait vous être familier. Si ce n'est pas le cas, il suffit de le rechercher sur Google pour les détails.
la source
Vous pouvez également spécifier le nom TNS dans l'URL JDBC comme ci-dessous
la source
Essaye ça:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Modifier: par commentaire ci-dessous, c'est vraiment correct:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(notez le//
)Voici un lien vers un article utile
la source
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
.oracle.hostserver2.mydomain.ca
?Cette discussion m'a aidé à résoudre le problème avec lequel je me débattais depuis des jours. J'ai regardé partout sur Internet jusqu'à ce que je trouve la réponse de Jim Tough le 18 mai 11 à 15:17. Avec cette réponse, j'ai pu me connecter. Maintenant, je veux redonner et aider les autres avec un exemple complet. Voici:
la source
Dans le cas où vous utilisez eclipse pour connecter oracle sans SID. Il y a deux pilotes à sélectionner, à savoir le pilote léger Oracle et l'autre est un autre pilote. Sélectionnez d'autres pilotes et entrez le nom du service dans la colonne de la base de données. Vous pouvez maintenant vous connecter directement en utilisant le nom du service sans SID.
la source
Lors de l'utilisation
dag
au lieu dethin
, la syntaxe ci-dessous pointant vers le nom du service a fonctionné pour moi. Lesjdbc:thin
solutions ci-dessus n'ont pas fonctionné.la source
Cela devrait fonctionner:
jdbc:oracle:thin//hostname:Port/ServiceName=SERVICE_NAME
la source