sql >> Base de Datos >  >> RDS >> Oracle

¿Por qué no puedo conectarme a través de jdbc usando SQLcl?

Parece que su SID y el nombre del servicio no son iguales. En SQL Developer, parece estar usando el SID, al menos en la URL de JDBC personalizada que mostró, como lo indican los dos puntos en :vdbsl4 .

Su URL de SQLcl usa el nombre del servicio, como lo indica la barra inclinada en /vdbsl14 . Usar el SID en su lugar (es decir, cambiar / a :) en esa URL debería funcionar ya que está usando JDBC:

sqlcl username/[email protected]:1521:vdbsl14

Alternativamente (y preferiblemente, en mi opinión) averigüe cuál es realmente el nombre de su servicio. Si tiene suficientes privilegios en la base de datos, puede hacer show parameters service_names desde SQL Devleoper, o si tiene acceso al servidor como DBA, puede hacer lsnrctl services , o incluso mire el tnsnames.ora en caso de que haya un alias TNS definido que muestre el nombre del servicio. (listener.ora no es probable que ayude, pero podría dar pistas o, si tiene suerte, mostrar un nombre de servicio predeterminado).

Puede usar ese nombre de servicio en una URL de JDBC, como /service_name .

También puede usar un alias TNS de SQLcl (o SQL*Plus). Es posible que ya tenga un tnsnames.ora disponible; si no, es posible que pueda copiarlo desde su servidor o crear uno propio. Eso puede referirse al SID o al nombre del servicio.

Incluso puede pasar una descripción TNS completa a SQL*Plus (no estoy seguro acerca de SQLcl), pero eso es un poco desagradable. Si no tiene/quiere un tnsnames.ora puede usar la sintaxis de 'conexión fácil', que es la misma que está usando para SQLcl, pero eso tiene para ser el nombre del servicio, no permite SID.