Consultor Eletrônico



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