Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pourquoi ne puis-je pas me connecter via jdbc en utilisant SQLcl

Il semble que votre SID et le nom du service ne soient pas identiques. Dans SQL Developer, vous semblez utiliser le SID - au moins dans l'URL JDBC personnalisée que vous avez montrée - comme indiqué par les deux-points dans :vdbsl4 .

Votre URL SQLcl utilise le nom du service, comme indiqué par la barre oblique dans /vdbsl14 . Utiliser le SID à la place (c'est-à-dire changer le / en :) dans cette URL devrait fonctionner puisqu'il utilise JDBC :

sqlcl username/[email protected]:1521:vdbsl14

Alternativement (et de préférence, à mon avis), découvrez quel est réellement le nom de votre service. Si vous avez suffisamment de privilèges sur la base de données, vous pouvez faire show parameters service_names depuis SQL Devleoper, ou si vous avez accès au serveur en tant que DBA, vous pouvez faire des lsnrctl services , ou même regarder le tnsnames.ora dans le cas où un alias TNS défini affiche le nom du service. (listener.ora n'est pas susceptible d'aider, mais pourrait donner des indices ou, si vous avez de la chance, afficher un nom de service par défaut).

Vous pouvez utiliser ce nom de service dans une URL JDBC, comme /service_name .

Vous pouvez également utiliser un alias TNS de SQLcl (ou SQL*Plus). Vous avez peut-être déjà un tnsnames.ora disponible; sinon, vous pourrez peut-être le copier depuis votre serveur ou créer le vôtre. Cela peut faire référence au SID ou au nom du service.

Vous pouvez même passer une description TNS complète à SQL*Plus (pas sûr de SQLcl) mais c'est un peu désagréable. Si vous n'avez pas/ne voulez pas de tnsnames.ora vous pouvez utiliser la syntaxe 'easy connect', qui est la même que celle que vous utilisez pour SQLcl - mais cela a être le nom du service, il n'autorise pas les SID.