BASE DE DADOS DE CONHECIMENTO

Erro ""ORA-12154"" Connecting to Oracle When Not Using TNSNames.ora (Conexão ao Oracle quando não estiver usando TNSNames.ora)


Publicado: 01 Aug 2014
Data da última modificação: 29 Nov 2023

Problemas

Ao usar uma conexão Oracle criada em um computador que utiliza LDAP, TNSNAMES, ou EZCONNECT ou no qual todos os três parâmetros de conexão (Servidor, Serviço e Porta) foram configurados durante a conexão inicial, a conexão não funcionará mais, e o seguinte erro poderá ocorrer.

"Oracle database error 12154: ORA-12154: TNS:could not resolve the connect identifier specified" (Erro de banco de dados Oracle 12154: ORA-12154: TNS: não foi possível resolver o identificador de conexão especificado)

Quando você tenta se conectar ao mesmo banco de dados Oracle usando o nome de serviço do arquivo TNSNames.ora no parâmetro Servidor e deixando os outros dois parâmetros em branco, a conexão é bem-sucedida.

Esse comportamento ocorre ao:
  • Compartilhar pastas de trabalho entre computadores executando o Tableau Desktop, um dos quais tem os arquivos de configuração acima e o outro não.
  • Publicar uma conexão em tempo real ao Oracle de um computador executando o Tableau Desktop que usa um dos arquivos de configuração acima para uma instância que não usa. (Se a conexão for publicada como uma extração, ela funcionará, mas não será atualizada.)

Ambiente

  • Tableau Server
  • Tableau Desktop
  • Oracle

Resolução

Opção 1:

Peça ao seu administrador de banco de dados Oracle que permita o tipo de conexão HOSTNAME para o cliente Oracle no computador executando o Tableau Desktop ou o Tableau Server.

Opção 2:

A solução a seguir pode permitir o tipo de conexão HOSTNAME:

  1. No computador que executa o Tableau Desktop ou o Tableau Server, localize o arquivo sqlnet.ora. A pasta que contém o arquivo deve ser especificada na variável TNS_ADMIN e também deve conter o arquivo TNSNames.ora. Para obter mais informações, consulte "Definir a variável de ambiente TNS_Admin" em Configuração de uma conexão Oracle para usar TNSNames.ora e Sqlnet.ora nas perguntas frequentes do Oracle.
    Observação: se esta pasta não tiver um arquivo sqlnet.ora, crie-o.
  2. No arquivo sqlnet.ora, altere a linha NAMES.DIRECTORY_PATH para que diga o seguinte ou adicione a linha a seguir ao arquivo sqlnet.ora: 
    NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)
Observação: se esse problema ocorre em um ambiente distribuído do Tableau Server, realize as etapas acima em todos os computadores na instalação do Tableau Server. Inclua o nome do serviço e o número da porta, use o FQDN (nome de domínio totalmente qualificado) no campo de texto "Servidor" da caixa de diálogo de conexão.

Causa

O arquivo sqlnet.ora não está permitindo que o driver Oracle procure o banco de dados usando todos os três parâmetros de conexão.

Quando TNSNAMES.ora ou LDAP.ora estão em uso, eles permitem que as conexões da Oracle e seus parâmetros sejam definidos fora do conector do Tableau. A parte "net_service_name" será usada como o campo do servidor que, quando inserido com as credenciais, busca o nome do serviço e o número da porta do arquivo TNSNAMES/LDAP. Os computadores que não usam TNSNAMES/LDAP exigem que o nome do serviço e o número da porta sejam inseridos para que a conexão funcione, eles também exigem o uso de um FQDN para o servidor em vez de um nome personalizado (por exemplo: "oracle.test.tsi.lan" seria o FQDN, enquanto "Oracle_01" poderia ser usado como um net_service_name)

Informações adicionais

Oracle


Este artigo resolveu o problema?