ORACLE: “Listener refused” somente via JDBC

Você consegue conectar no seu banco oracle local (ou docker) via sqlplus mas quando tenta conectar via JDBC você recebe o seguinte erro?

[66000][12505] Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor.

O erro acima pode ter inúmeras causas. Mas quando você consegue acessar via sqlplus mas não consegue no seu programa JAVA (via JDBC), a solução pode ser muito simples. Basta conferir a sua string jdbc e trocar o “:” após o número da porta (1521) por “/”:

jdbc:oracle:thin:@localhost:1521:XEPDB1 (antes)

jdbc:oracle:thin:@localhost:1521/XEPDB1 (depois)

A explicação é simples: Quando você usa os “:”, você está especificando um SID que realmente não existe no seu Oracle. Quando você usa a barra “/”, você está usando o SERVICE_NAME.

Se essa simples dica funcionou para você e te economizou um tempão de pesquisa na internet, por favor, me avise através de um comentário para que eu fique motivado a escrever mais posts sobre esse assunto.

Abraço!

Este post foi útil para você?

2 comentários

Deixe um comentário

O seu endereço de e-mail não será publicado.