Estou tentando me conectar a um banco de dados oracle com SQL Developer.
Instalei os drivers .Net Oracle e coloquei o tnsnames.ora
arquivo em
C:\Oracle\product\11.1.0\client_1\Network\Admin
Estou usando o seguinte formato em 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, nenhum nome TNS aparece como opções.
Tem algo que estou perdendo?
$TNS_ADMIN
o DIRETÓRIO não é o.ora
arquivo realAbra o SQL Developer. Vá para Ferramentas -> Preferências -> Bancos de dados -> Avançado Em seguida, defina explicitamente o diretório Tnsnames
Meu TNSNAMES foi configurado corretamente e pude me conectar ao Toad, SQL * Plus etc., mas eu precisava fazer isso para fazer o SQL Developer funcionar. Talvez fosse um problema do Win 7, pois também era difícil de instalar.
fonte
Em SQLDeveloper ver
Tools --> Preferences
, como mostrado na imagem abaixo.Nas opções de Preferências em
expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
que tnsnames.ora está presente.Em seguida, clique em Ok .
conforme mostrado no diagrama abaixo.
Agora você pode se conectar por meio das opções de TNSnames .
fonte
Você sempre pode descobrir a localização do arquivo tnsnames.ora sendo usado executando TNSPING para verificar a conectividade (9i ou posterior):
Às vezes, o problema é com a entrada que você fez em tnsnames.ora, não que o sistema não consiga localizá-la. Dito isso, concordo que ter uma variável de ambiente tns_admin definida é uma coisa boa, pois evita os problemas inevitáveis que surgem com a determinação exata de qual arquivo tnsnames está sendo usado em sistemas com vários oracle homes.
fonte
As etapas mencionadas por Jason são muito boas e devem funcionar. No entanto, há uma pequena diferença no SQL Developer. Ele armazena em cache as especificações de conexão (host, nome do serviço, porta) na primeira vez que lê o arquivo tnsnames.ora. Então, ele não invalida as especificações quando a entrada original é removida do arquivo tnsname.ora. O cache persiste mesmo após o SQL Developer ser encerrado e reiniciado. Esta não é uma forma tão ilógica de lidar com a situação. Mesmo se um arquivo tnsnames.ora estiver temporariamente indisponível, o SQL Developer ainda pode fazer a conexão, desde que as especificações originais ainda sejam verdadeiras. O problema surge com sua próxima reviravolta. O SQL Developer trata os nomes de serviço no arquivo tnsnames.ora como valores que diferenciam maiúsculas de minúsculas ao resolver a conexão. Então, se você costumava ter um nome de entrada ABCD. world no arquivo e você o substituiu por uma nova entrada chamada abcd.world, o SQL Developer NÃO atualizaria suas especificações de conexão para ABCD.world - tratará abcd.world como uma conexão totalmente diferente. Por que não estou surpreso que um produto Oracle trataria como diferenciando maiúsculas de minúsculas o conteúdo de um formato de arquivo desenvolvido pela oracle que não diferencia maiúsculas de minúsculas?
fonte
No Sql Developer, navegue até Ferramentas-> preferências-> Datababa-> avançado-> Definir o diretório Tnsname para o diretório que contém tnsnames.ora
fonte
Nenhuma das mudanças acima fez qualquer diferença no meu caso. Eu poderia executar TNS_PING na janela de comando, mas o SQL Developer não conseguiu descobrir onde estava tnsnames.ora.
O problema no meu caso (Windows 7 - 64 bits - Enterprise) 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 do SQL Developer que acompanham o instalador. Um está em% ORACLE_HOME% \ client_1 \ sqldeveloper \ e dois estão em% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.
O instalador instalou um atalho do menu iniciar que apontava para uma versão no diretório bin que simplesmente não funcionava. Ele pedia uma senha toda vez que eu iniciava o SQL Developer, não me lembro das escolhas que fiz e exibia uma lista em branco quando escolhi o TNS como o mecanismo de conexão. Também não possui o campo Diretório TNS nas configurações avançadas do banco de dados referenciadas em outras postagens.
Joguei fora o antigo atalho Iniciar e instalei um atalho para% ORACLE_HOME% \ client_1 \ sqldeveloper \ sqldeveloper.exe. Essa mudança resolveu o problema no meu caso.
fonte