Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que não consigo me conectar via jdbc usando SQLcl


Parece que seu SID e nome de serviço não são os mesmos. No SQL Developer, você parece estar usando o SID - pelo menos no URL JDBC personalizado que você mostrou - conforme indicado pelos dois pontos em :vdbsl4 .

Seu URL SQLcl está usando o nome do serviço, conforme indicado pela barra em /vdbsl14 . Usar o SID em vez disso (ou seja, alterar / para :) nesse URL deve funcionar, pois está usando JDBC:
sqlcl username/[email protected]:1521:vdbsl14

Alternativamente (e de preferência, na minha opinião) descubra qual é realmente o nome do seu serviço. Se você tiver privilégios suficientes no banco de dados, você pode fazer show parameters service_names do SQL Devleoper, ou se você tiver acesso ao servidor como DBA, você pode fazer lsnrctl services , ou até mesmo veja o tnsnames.ora caso haja um alias TNS definido que mostre o nome do serviço. (listener.ora provavelmente não ajudará, mas pode dar dicas ou, se você tiver sorte, mostrar um nome de serviço padrão).

Você pode usar esse nome de serviço em uma URL JDBC, como /service_name .

Você também pode usar um alias TNS do SQLcl (ou SQL*Plus). Você já pode ter um tnsnames.ora acessível; caso contrário, você poderá copiá-lo do seu servidor ou criar o seu próprio. Isso pode se referir ao SID ou ao nome do serviço.

Você pode até passar uma descrição completa do TNS para o SQL*Plus (não tenho certeza sobre o SQLcl), mas isso é um pouco desagradável. Se você não tem/quer um tnsnames.ora você pode usar a sintaxe 'easy connect', que é a mesma que você está usando para SQLcl - mas que tem para ser o nome do serviço, ele não permite SIDs.