Kbase 88298: Erro ORA-12514 em conexão JDBC
Autor |
  Eloi Rene Pscheidt - CAT |
Acesso |
  Público |
Publicação |
  19/09/2018 |
|
Erro:
java.sql.SQLException:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
URL JDBC utilizada:
jdbc:oracle:thin:@<nome_servidor>:<porta_listener>:<nome_sid_ou_servico>
Exemplo:
jdbc:oracle:thin:@JVN60104700:1521:pdb2
Causa:
Tendo a certeza de que o nome do SID ou serviço informado na URL realmente existem no listener em questão, outra causa pode ser o formato da url obsoleto.
Versões mais antigas do Oracle, quando ainda não existia o conceito de serviços de banco de dados, utilizavam o caractere dois-pontos após o número da porta informando o SID do banco, exemplo:
jdbc:oracle:thin:@JVN60104700:1521:pdb2
Isso continua funcionando, desde que seja informado o SID e não o nome do serviço.
Em ambientes com Oracle Real Application Cluster (RAC) ou Pluggable Databases (Multitenant 12C em diante), não é mais informado o nome do SID, mas sim o nome do serviço que corresponde ao cluster ou ao pluggable database.
Correção:
Utilizar o caractere barra (/) para separar a porta do listener do nome do serviço, conforme o exemplo:
jdbc:oracle:thin:@JVN60104700:1521/pdb2