Het lijkt erop dat uw SID en servicenaam niet hetzelfde zijn. In SQL Developer lijkt het erop dat u de SID gebruikt - althans in de aangepaste JDBC-URL die u liet zien - zoals aangegeven door de dubbele punt in :vdbsl4
.
Uw SQLcl-URL gebruikt de servicenaam, zoals aangegeven door de schuine streep in /vdbsl14
. Het gebruik van de SID in plaats daarvan (d.w.z. het wijzigen van de / naar :) in die URL zou moeten werken omdat het JDBC gebruikt:
sqlcl username/[email protected]:1521:vdbsl14
Als alternatief (en bij voorkeur, naar mijn mening) zoek je uit wat je servicenaam eigenlijk is. Als u voldoende privileges heeft op de database, kunt u show parameters service_names
van SQL Devleoper, of als u toegang hebt tot de server als DBA, kunt u lsnrctl services
doen , of kijk zelfs naar de tnsnames.ora
in het geval dat er een TNS-alias is gedefinieerd die de servicenaam weergeeft. (listener.ora
zal waarschijnlijk niet helpen, maar kan hints geven of, als je geluk hebt, een standaard servicenaam tonen).
U kunt die servicenaam gebruiken in een JDBC-URL, als /service_name
.
U kunt ook een TNS-alias uit SQLcl (of SQL*Plus) gebruiken. Je hebt misschien al een tnsnames.ora
verkrijgbaar; zo niet, dan kun je het misschien van je server kopiëren of je eigen maken. Dat kan verwijzen naar de SID of de servicenaam.
Je kunt zelfs een volledige TNS-beschrijving doorgeven aan SQL*Plus (niet zeker van SQLcl), maar dat is een beetje onaangenaam. Als je geen tnsnames.ora
. hebt/wilt je kunt de 'easy connect'-syntaxis gebruiken, die hetzelfde is als je gebruikt voor SQLcl - maar dat heeft om de servicenaam te zijn, staat het geen SID's toe.