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

ORA-12154 não pôde resolver o identificador de conexão especificado


Vou supor que você esteja usando o arquivo tnsnames.ora para especificar seus serviços de banco de dados disponíveis. Nesse caso, os erros de conexão geralmente se resumem a duas coisas.

  1. O aplicativo não pode localizar a entrada TNS que você especificou na cadeia de conexão.

  2. A entrada TNS foi encontrada, mas o IP ou host não está correto no arquivo tnsnames.ora.

Para expandir o número 1 (que eu acho que é o seu problema). Quando você diz ao Oracle para se conectar usando algo como:
sqlplus user/[email protected]

O serviço é definido no arquivo tnsnames.ora. Se eu tentar me conectar com um serviço que não está definido no meu tnsnames.ora, recebo o erro que você recebe:

[[email protected] ~]$ sqlplus sodonnel/[email protected]
SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 31 21:42:15 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

Então você precisa verificar algumas coisas:
  1. Existe um arquivo tnsnames.ora - acho que sim porque seu console pode se conectar
  2. Existe uma entrada no arquivo para o serviço - acho que sim, pois o console se conecta
  3. O aplicativo pode encontrar o tnsnames.ora?

Seu problema pode ser o número 3 - o aplicativo é executado como um usuário diferente de quando você executa o console?

O Oracle procura o arquivo tnsnames.ora no diretório definido na variável de ambiente TNS_ADMIN - Se você estiver executando como usuários diferentes, talvez a variável de ambiente TNS_ADMIN não esteja definida e, portanto, não consiga encontrar o arquivo?