Sembra che il tuo SID e il nome del servizio non siano gli stessi. In SQL Developer sembra che tu stia utilizzando il SID - almeno nell'URL JDBC personalizzato che hai mostrato - come indicato dai due punti in :vdbsl4
.
Il tuo URL SQLcl utilizza il nome del servizio, come indicato dalla barra in /vdbsl14
. L'utilizzo del SID invece (cioè la modifica di / in :) in quell'URL dovrebbe funzionare poiché utilizza JDBC:
sqlcl username/[email protected]:1521:vdbsl14
In alternativa (e preferibilmente, secondo me) scopri qual è effettivamente il nome del tuo servizio. Se hai sufficienti privilegi sul database puoi fare show parameters service_names
da SQL Devleoper, oppure se hai accesso al server come DBA puoi fare lsnrctl services
, o anche guardare tnsnames.ora
nel caso sia definito un alias TNS che mostra il nome del servizio. (listener.ora
non è in grado di aiutare, ma potrebbe fornire suggerimenti o, se sei fortunato, mostrare un nome di servizio predefinito).
Puoi utilizzare quel nome di servizio in un URL JDBC, come /service_name
.
Puoi anche usare un alias TNS da SQLcl (o SQL*Plus). Potresti già avere un tnsnames.ora
a disposizione; in caso contrario potresti essere in grado di copiarlo dal tuo server o crearne uno tuo. Questo può fare riferimento al SID o al nome del servizio.
Puoi anche passare una descrizione TNS completa a SQL*Plus (non sono sicuro di SQLcl), ma è un po' spiacevole. Se non hai/vuoi un tnsnames.ora
puoi usare la sintassi "easy connect", che è la stessa che stai usando per SQLcl, ma che ha essere il nome del servizio, non consente i SID.