在Oracle SQL Developer中使用tnsnames.ora


137

我正在评估Oracle SQL Developer

tnsnames.ora填充了My ,并且tnsping连接到中定义的连接tnsnames.ora正常。SQL Developer仍然不会显示任何连接。

Oracle SQL Developer Soars提到,如果

如果您已经在计算机上安装了Oracle客户端软件和一个tnsnames.ora文件,则Oracle SQL Developer将自动从tnsnames.ora中定义的网络服务名称填充Connections导航器。

我也尝试设置TNS_ADMIN环境变量,但是在重新启动SQL Developer之后,仍然没有显示连接。

有任何想法吗?
有人成功使用SQL Developer和tnsnames.ora吗?


我下载并安装了Oracle SQL Developer,以连接到已经存在的Oracle 11g数据库。但是似乎还需要下载并安装Oracle客户端软件,如果我使用Windows 10,该使用哪一个?
VoodooChild

Answers:


219
  • SQLDeveloper中浏览Tools --> Preferences,如下图所示。

    SQLDeveloper访问首选项

  • tnsnames.ora所在的“首选项选项expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory中。
  • 然后单击确定,如下图所示。
    tnsnames.ora可在以下位置获得Drive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper更新tnsnames目录

现在,您可以通过TNSnames选项进行连接。


4
大家好,对此旧帖子(但很有帮助)进行一点更新:不要尝试在Windows上使用符号链接。SQL开发人员似乎不知道如何使用它。让我浪费了一些时间。希望它能保存您的。
Hellday5432

@ Hellday5432-是的,这是正确的。SQL Dev在不了解快捷方式的Java上运行;例如,当打开文件时,我们不能使用快捷方式跳转到目录。
肯特·帕瓦

5
Windows快捷方式!=符号链接。howtogeek.com/howto/16226/…–
Matt Lachman

我下载并安装了Oracle SQL Developer,以连接到已经存在的Oracle 11g数据库。但是似乎还需要下载并安装Oracle客户端软件,如果我使用Windows 10,该使用哪一个?
VoodooChild

我在SQL Developer 1.5.5版中看不到Tnsnanes目录选项。
阿米

24

这个类似问题的极好答案(不幸的是,我以前找不到)帮助我解决了这个问题。

从引用的答案中复制内容:

SQL Developer将按以下顺序在以下位置查找tnsnames.ora文件

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
注册表中的TNS_ADMIN查找键
/etc/tnsnames.ora(非Windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

如果您的tnsnames.ora文件未被识别,请使用以下过程:

定义一个名为TNS_ADMIN的环境变量,以指向包含您的tnsnames.ora文件的文件夹。

在Windows中,这是通过导航到“控制面板”>“系统”>“高级系统设置”>“环境变量...”来完成的。
在Linux中,请在主目录的.profile文件中定义TNS_ADMIN变量。

确认操作系统正在识别此环境变量

从Windows命令行:echo%TNS_ADMIN%

从Linux:echo $ TNS_ADMIN

重新启动SQL Developer现在,在SQL Developer中,右键单击Connections并选择New Connection...。在下拉框中选择TNS作为连接类型。您从tnsnames.ora中输入的内容现在应显示在此处。


3
我知道已经有一段时间了,但是您可以在此处列出答案的相关部分吗?以防万一答案(甚至是问题)被删除。
丹尼斯·孟

1
基本上,它四舍五入为设置TNS_ADMIN系统变量(因为SQL Developer首先在此处搜索),并且在重新启动SQL Developer之后,选择“新建连接”,然后在“连接类型”下拉列表中(而不是“基本”)选择TNS-所以-tnsnames可以看到,但是您不应期望自动填充连接(我就是这种情况)
hello_earth 2015年

搜索将我带到了她,所以已经更新了答案,因为已经提到了作者@DennisMeng
TheGameiswar

7

我遇到了同样的问题,tnsnames.ora对于所有其他工具都可以正常工作,但是SQL Developer不会使用它。我尝试了所有可以在网上找到的建议,包括此处提供的链接上的解决方案。
没事。

事实证明,该数据库缓存的备份副本tnsnames.ora一样tnsnames.ora.bk2tnsnames09042811AM4501.baktnsnames.ora.bk等,这些文件并没有被普通用户可读。

我怀疑sqldeveloper的名称与模式匹配,并且试图读取这些备份副本之一,但无法读取。因此它只是正常地失败,并且在下拉列表中什么也不显示。

解决方案是使所有文件可读或删除或将备份副本移出Admin目录。


那可能正是您所看到的。SQL Plus和SQL Developer都可以查看/解析/读取tnsnames-因此,如果一个人不好,那可能会级联下来并导致您的问题。
thatjeffsmith 2014年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.