在 Oracle SQL Developer 中使用 tnsnames.ora

我在评估 Oracle SQL 开发人员

我的 tnsnames.ora已经被填充,并且 tnspingtnsnames.ora中定义的连接可以正常工作。不过,SQLDeveloper 不显示任何连接。

Oracle SQL Developer Soars 提到,如果

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

我还试图设置我的 TNS_ADMIN环境变量,但是重启 SQL Developer 后仍然没有显示连接。

有什么想法吗?
有人成功地使用了 SQL Developer 和 tnsnames.ora 吗?

391436 次浏览

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

复制参考答案内容:

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

$主页/. tnsnames.ora
$TNS _ ADMIN/tnsnames.ora
注册表中的 TNS _ ADMIN 查找键
/etc/tnsnames.ora (非窗口)
$ORACLE _ HOME/network/admin/tnsnames.ora
本地机器软件 ORACLE _ Home _ KEY
本地机器软件

如果 tnsnames.ora 文件无法识别,请使用以下过程:

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

在 Windows 中,这是通过导航到控制面板 > 系统 > 高级系统设置 > 环境变量..。
在 Linux 中,在主目录的. profile 文件中定义 TNS _ ADMIN 变量。

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

从 Windows 命令行: echo% TNS _ ADMIN%

来自 linux: echo $TNS _ ADMIN

重新启动 SQL 开发人员 现在在 SQLDeveloper 中右键单击 Connections 并选择 NewConnection... 。在下拉框中选择 TNS 作为连接类型。来自 tnsnames.ora 的条目现在应该显示在这里。

我也有同样的问题,tnsnames.ora对于其他所有工具都很好用,但是 SQL 开发人员不会使用它。我在网上找到了所有的建议,包括这里提供的链接的解决方案。
什么都没用。

原来数据库缓存了 tnsnames.ora的备份副本,如 tnsnames.ora.bk2tnsnames09042811AM4501.baktnsnames.ora.bk等。普通用户无法读取这些文件。

我怀疑 sqldeveloper 模式匹配的名字,它正在尝试读取这些备份副本中的一个,但是无法读取。所以它只是优雅地失败了,并且在下拉列表中没有显示任何内容。

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

这对我有帮助:

Posted: 8/12/20114:54发布时间: 2011年8月12日4:54

设置 tnsNames 目录 工具-> 首选项-> 数据库-> 高级-> TnsnamesDirectory

Https://forums.oracle.com/forums/thread.jspa?messageid=10020012&#10020012

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

    SQLDeveloper access preferences

  • 偏好选项 expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory中,Tnsnames.ora出现。
  • 然后点击 好的, 如下图所示。
    可在 Drive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN获得 tnsnames.ora

    SQLDeveloper update tnsnames directory

现在您可以通过 < em > TNSnames 选项进行连接。

在新版本的 macOS 中,还必须设置 java.library.path。最简单/最安全的方法是创建 ~/.sqldeveloper/<version>/sqldeveloper.conf文件并按照以下方式填充它:

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

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