在 Oracle SQL Developer 中使用 tnsnames.ora
Posted
技术标签:
【中文标题】在 Oracle SQL Developer 中使用 tnsnames.ora【英文标题】:Use tnsnames.ora in Oracle SQL Developer 【发布时间】:2011-01-02 10:01:21 【问题描述】:我正在评估Oracle SQL Developer。
我的tnsnames.ora
已填充,tnsping
与tnsnames.ora
中定义的连接工作正常。尽管如此,SQL Developer 并没有显示任何连接。
Oracle SQL Developer Soars 提到,如果
您的机器上已经安装了 Oracle 客户端软件和 tnsnames.ora 文件,Oracle SQL Developer 将自动从 tnsnames.ora 中定义的网络服务名称填充连接导航器。
我也尝试设置我的TNS_ADMIN
环境变量,但重启SQL Developer 后仍然没有显示连接。
有什么想法吗? 有人成功使用 SQL Developer 和 tnsnames.ora 吗?
【问题讨论】:
我下载并安装了 Oracle SQL Developer 以连接到现有的 Oracle 11g 数据库。但是我似乎还需要下载和安装 Oracle 客户端软件,如果我在 Windows 10 上,我应该使用哪一个? 【参考方案1】:这个excellent answer 到一个类似的问题(我以前找不到,很遗憾)帮助我解决了这个问题。
从参考答案复制内容:
SQL Developer 将按此顺序在以下位置查找 tnsnames.ora 文件
$HOME/.tnsnames.ora $TNS_ADMIN/tnsnames.ora 注册表中的 TNS_ADMIN 查找键 /etc/tnsnames.ora(非 Windows) $ORACLE_HOME/network/admin/tnsnames.ora 本地机器\软件\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 的条目现在应该会显示在此处。
【讨论】:
我知道已经有一段时间了,但你能在这里拿出答案的相关部分吗?以防万一那个答案(甚至是问题)被删除。 基本上它会四舍五入设置 TNS_ADMIN 系统变量(因为 SQL Developer 在那里搜索〜首先),并且在重新启动 SQL Developer 后,选择 New Connection,然后在 Connection Type 下拉列表中,而不是 Basic,选择 TNS -所以 - tnsnames 看起来没问题,但你不应该期望连接会自动填充(我就是这种情况) 搜索带我去她,所以已经更新了答案,因为已经提到了作者@DennisMengspan> 【参考方案2】:我遇到了同样的问题,tnsnames.ora
在所有其他工具上都可以正常工作,但 SQL Developer 不会使用它。我尝试了网络上可以找到的所有建议,包括此处提供的链接上的解决方案。
没有任何效果。
事实证明,数据库正在缓存 tnsnames.ora
的备份副本,例如 tnsnames.ora.bk2
、tnsnames09042811AM4501.bak
、tnsnames.ora.bk
等。普通用户无法读取这些文件。
我怀疑 sqldeveloper 正在为名称进行模式匹配,它试图读取其中一个备份副本但无法读取。所以它只是优雅地失败并且在下拉列表中没有显示任何内容。
解决方案是使所有文件可读或删除或将备份副本移出 Admin 目录。
【讨论】:
这可能正是您所看到的。 SQLPlus 和 SQL Developer 都可以看到/解析/读取 tnsnames - 因此,如果一个不好,它可能会级联并导致您的问题。【参考方案3】:这对我有帮助:
发布时间:2011 年 8 月 12 日 4:54
设置 tnsnames 目录 工具->首选项->数据库->高级->Tnsnames目录
https://forums.oracle.com/forums/thread.jspa?messageID=10020012�
【讨论】:
【参考方案4】: 在SQLDeveloper中浏览Tools --> Preferences
,如下图所示。
在 Preferences 选项 expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
中存在 tnsnames.ora。
然后点击确定,
如下图所示。tnsnames.ora 位于 Drive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN
现在您可以通过 TNSnames 选项进行连接。
【讨论】:
大家,只是对这篇旧(但很有帮助)帖子的一点更新:不要尝试在 Windows 上使用符号链接。 SQL 开发人员似乎不知道如何使用它。让我失去了一些时间。希望它能拯救你的。 @Hellday5432 - 是的,这是正确的。 SQL Dev 在不理解快捷方式的 Java 上运行;例如,当打开文件时,我们不能使用快捷方式跳转到目录。 Windows 快捷方式 != 符号链接。 howtogeek.com/howto/16226/… 我下载并安装了 Oracle SQL Developer 以连接到现有的 Oracle 11g 数据库。但是我似乎还需要下载和安装 Oracle 客户端软件,如果我在 Windows 10 上,我应该使用哪一个? 我在 SQL Developer 版本 1.5.5 中没有看到 Tnsnanes 目录选项。【参考方案5】:在较新版本的 macOS 上,还必须设置 java.library.path
。最简单/最安全的方法 [1] 是创建 ~/.sqldeveloper/<version>/sqldeveloper.conf
文件并按如下方式填充它:
AddVMOption -Djava.library.path=<instant client directory>
[1]https://community.oracle.com/message/14132189#14132189
【讨论】:
以上是关于在 Oracle SQL Developer 中使用 tnsnames.ora的主要内容,如果未能解决你的问题,请参考以下文章
oracle sql developer工具 如何给用户分配权限
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题
pl/sql developer中文乱码,为啥呢?怎么解决?Oracle问题