Use tnsnames.ora no Oracle SQL Developer

137

Estou avaliando o Oracle SQL Developer .

Meu tnsnames.oraé preenchido, e um tnspingpara uma conexão definida em tnsnames.orafunciona bem. Ainda assim, o SQL Developer não exibe nenhuma conexão.

O Oracle SQL Developer Soars menciona que, se

você possui o software cliente Oracle e um arquivo tnsnames.ora já instalado em sua máquina, o Oracle SQL Developer preencherá automaticamente o navegador Connections a partir dos nomes de serviço de rede definidos em tnsnames.ora.

Também tentei definir minha TNS_ADMINvariável de ambiente, mas depois de reiniciar o SQL Developer, ainda não há conexões exibidas.

Alguma ideia?
Alguém trabalhando com sucesso com SQL Developer e tnsnames.ora?

Peter Lang
fonte
Fiz o download e instalei o Oracle SQL Developer para conectar-se a um banco de dados Oracle 11g já existente. Mas parece que vou precisar baixar e instalar o software cliente Oracle também, qual deles devo usar se estiver no Windows 10?
VoodooChild 14/09

Respostas:

219
  • No SQLDeveloperTools --> Preferences , navegue , como mostrado na imagem abaixo.

    Preferências de acesso SQLDeveloper

  • Nas opções de Preferências , expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directoryonde tnsnames.ora está presente.
  • Em seguida, clique em Ok , como mostrado no diagrama abaixo.
    tnsnames.ora disponível emDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    Diretório tnsnames de atualização do SQLDeveloper

Agora você pode conectar-se através das opções TNSnames .

Chandra Sekhar
fonte
4
pessoal, apenas uma pequena atualização sobre este post antigo (mas bastante útil): não tente usar um link simbólico no Windows. O desenvolvedor de SQL não parece saber como usá-lo. Me fez perder algum tempo. Espero que ele salve o seu.
Hellday5432
@ Hellday5432 - Sim, está correto. O SQL Dev é executado em Java, que não entende atalhos; por exemplo, ao abrir um arquivo, não podemos usar um atalho para ir para um diretório.
Kent Pawar
5
Atalho do Windows! = Link simbólico. howtogeek.com/howto/16226/...
Matt Lachman
Fiz o download e instalei o Oracle SQL Developer para conectar-se a um banco de dados Oracle 11g já existente. Mas parece que vou precisar baixar e instalar o software cliente Oracle também, qual deles devo usar se estiver no Windows 10?
VoodooChild 14/09
Não vejo a opção de diretório Tnsnanes no meu SQL Developer versão 1.5.5.
Amit Chaurasia
24

Essa excelente resposta a uma pergunta semelhante (que eu não conseguia encontrar antes, infelizmente) me ajudou a resolver o problema.

Copiando conteúdo da resposta referenciada:

O SQL Developer procurará no seguinte local nesta ordem um arquivo tnsnames.ora

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
Chave de pesquisa TNS_ADMIN no registro
/etc/tnsnames.ora (não janelas)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ ORACLE \ ORACLE_HOME

Se o seu arquivo tnsnames.ora não estiver sendo reconhecido, use o seguinte procedimento:

Defina uma variável ambiental chamada TNS_ADMIN para apontar para a pasta que contém o arquivo tnsnames.ora.

No Windows, isso é feito navegando para Painel de controle> Sistema> Configurações avançadas do sistema> Variáveis ​​de ambiente ...
No Linux, defina a variável TNS_ADMIN no arquivo .profile no diretório inicial.

Confirme se o sistema operacional está reconhecendo essa variável ambiental

Na linha de comando do Windows: echo% TNS_ADMIN%

No linux: echo $ TNS_ADMIN

Reinicie o SQL Developer Now no SQL Developer, clique com o botão direito do mouse em Conexões e selecione Nova conexão .... Selecione TNS como tipo de conexão na caixa suspensa. Suas entradas de tnsnames.ora agora devem ser exibidas aqui.

Peter Lang
fonte
3
Sei que já faz um tempo, mas você pode extrair a parte relevante da resposta aqui? Apenas no caso de a resposta (ou mesmo a pergunta) ser excluída.
Dennis Meng
1
basicamente ele define a variável de sistema TNS_ADMIN (porque o SQL Developer pesquisa lá ~ primeiro) e, depois de reiniciar o SQL Developer, escolhendo Nova Conexão e na lista suspensa Tipo de Conexão, em vez de Básico, escolhendo TNS - então - tnsnames é visto corretamente, mas você não deve esperar as conexões para ser preenchido automaticamente (que era o meu caso)
hello_earth
busca me levou, por isso têm resposta atualizado desde já existe referência ao @DennisMeng autor
TheGameiswar
7

Eu tive o mesmo problema, tnsnames.orafuncionou bem para todas as outras ferramentas, mas o SQL Developer não o utilizaria. Tentei todas as sugestões na web que pude encontrar, incluindo as soluções no link fornecido aqui.
Nada funcionou.

Acontece que o banco de dados foi cache cópias de segurança tnsnames.oracomo tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bketc. Esses arquivos não eram legíveis pelo usuário médio.

Eu suspeito que sqldeveloper é padrão de correspondência para o nome e estava tentando ler uma dessas cópias de backup e não conseguiu. Por isso, apenas falha normalmente e não mostra nada na lista suspensa.

A solução é tornar todos os arquivos legíveis ou excluir ou mover as cópias de backup do diretório Admin.

Jim
fonte
Provavelmente é exatamente isso que você está vendo. O SQL Plus e o SQL Developer veem / analisam / leem os nomes de usuário - portanto, se alguém estiver com problemas, isso pode causar uma cascata e causar o problema.
thatjeffsmith
0

Nas versões mais recentes do macOS, também é necessário definir java.library.path. A maneira mais fácil / segura de fazer isso [1] é criando um ~/.sqldeveloper/<version>/sqldeveloper.confarquivo e preenchendo-o como tal:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

dinvlad
fonte