Pergunta

Eu estou tentando se conectar a um banco de dados Oracle com o SQL Developer.

Eu tenho instalado os drivers do Oracle Net e colocou o arquivo tnsnames.ora em
C:\Oracle\product\11.1.0\client_1\Network\Admin

Eu estou usando o seguinte formato no tnsnames.ora:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

No SQL Developer, quando tento criar uma nova conexão, não TNS-nomes aparecem como opções.

Existe algo que eu estou perdendo?

Foi útil?

Solução

SQL Developer vai olhar no seguinte local neste fim de um arquivo tnsnames.ora

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. TNS_ADMIN lookup chave no Registro
  4. /etc/tnsnames.ora (não-Windows)
  5. $ ORACLE_HOME / network / admin / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Para ver qual SQL Developer está usando, emitir o show tns comando na planilha

Se o arquivo tnsnames.ora não está sendo reconhecido, use o seguinte procedimento:

  1. Definir uma variável de ambiente chamada TNS_ADMIN para apontar para a pasta que contém o arquivo tnsnames.ora.

    No Windows, isso é feito navegando até Painel de controle > Sistema > Configurações avançadas do sistema > Variáveis ??de ambiente ...

    No Linux, definir o TNS_ADMIN variável no arquivo .profile em seu diretório pessoal.

  2. Confirmar o sistema operacional é reconhecer esta variável ambiental

    A partir da linha de comando do Windows: echo% TNS_ADMIN%

    De linux: echo $ TNS_ADMIN

  3. Restart SQL Developer

  4. Agora em SQL Developer clique direito em Conexões e selecione New Connection ... . Selecione TNS como o tipo de conexão na caixa suspensa. As entradas de tnsnames.ora deve agora mostrar aqui.

Outras dicas

Open SQL Developer. Vá em Ferramentas -> Preferências -> Bancos de Dados -> Avançado Em seguida, defina explicitamente o diretório TNSNAMES

Meu TNSNAMES foi configurado corretamente e eu poderia ligar para Toad, SQL * Plus, etc, mas eu precisava fazer isso para obter desenvolvedor SQL ao trabalho. Talvez tenha sido uma questão Win 7 como era uma dor de instalar também.

Você sempre pode descobrir a localização do arquivo tnsnames.ora sendo usado por correr TNSPING para verificar a conectividade (9i ou posterior):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

Às vezes, o problema é com a entrada que você fez no tnsnames.ora, não que o sistema pode não encontrá-lo. Dito isso, concordo que ter um conjunto TNS_ADMIN variável de ambiente é uma coisa boa, uma vez que evita os problemas inevitáveis ??que surgem com determinar exatamente quais TNSNAMES arquivo está sendo usado em sistemas com múltiplas casas Oracle.

Em SQLDeveloper Tools --> Preferences browse, como mostrado na imagem abaixo.
enter descrição da imagem aqui
Nos Preferências Opções expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory onde tnsnames.ora presente.
Em seguida, clique em OK .
como mostrado no diagrama abaixo.

enter descrição da imagem aqui

Você tem feito!

Agora você pode conectar através do TNSNAMES Opções.

As etapas mencionadas por Jason são muito bons e deve funcionar. Há uma pequena torção com SQL Developer, no entanto. Ele armazena em cache as especificações de conexão (host, nome de serviço, port) na primeira vez que lê o arquivo tnsnames.ora. Então, isso não invalida as especificações quando a entrada original é removido do arquivo tnsname.ora. O cache persiste mesmo depois de SQL Developer foi encerrado e reiniciado. Esta não é uma maneira tão ilógica de lidar com a situação. Mesmo se um arquivo tnsnames.ora está temporariamente indisponível, SQL Developer ainda pode fazer a conexão, desde que as especificações originais ainda são verdadeiras. O problema vem com o seu próximo torção pouco. Desenvolvedores trata nomes de serviços SQL no arquivo tnsnames.ora como valores de maiúsculas e minúsculas ao resolver a conexão. Então, se você costumava ter um nome de entrada ABCD.world no arquivo e você substituiu-o com uma nova entrada chamada abcd.world, SQL Developer não iria atualizar suas especificações de conexão para ABCD.world - vai tratar abcd.world como um diferente conexão completamente. Por que não estou surpreso que um produto da Oracle iria tratar como case-sensitive o conteúdo de um formato de arquivo oracle-desenvolvido que é expressamente case-insensitive?

No SQL Developer, navegar para Ferramentas-> Preferências> Banco de dados> avançado-> diretório Set TNSNAMES para o diretório contendo tnsnames.ora

Nenhuma das alterações acima feito qualquer diferença no meu caso. Eu poderia correr TNS_PING na janela de comando, mas SQL Developer não conseguia descobrir onde tnsnames.ora era.

A questão no meu caso (Windows 7 - 64 bit - empresa) foi que o instalador do Oracle apontou o atalho do menu Iniciar para a versão errada do SQL Developer. Parece haver três instâncias de Desenvolvedor SQL que acompanham o instalador. Uma delas é em% ORACLE_HOME% \ client_1 \ sqldeveloper \ e dois estão em% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.

O instalador instalado um atalho no menu Iniciar que apontou para uma versão no diretório bin que simplesmente não funcionou. Seria pedir uma senha toda vez que eu comecei SQL Developer, não me lembro de escolhas que eu tinha feito e exibido uma lista em branco quando eu escolhi TNS como o mecanismo de conexão. Ele também não tem o campo Diretório TNS nas configurações avançadas de banco de dados referenciados em outros lugares.

Joguei o velho atalho Iniciar e instalado um atalho para% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Essa mudança corrigiu o problema no meu caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top