在Oracle SQL Developer中使用tnsnames.ora

时间:2010-01-07 09:10:29

标签: sql oracle tnsnames oracle-sqldeveloper

我正在评估Oracle SQL Developer

我的tnsnames.ora已填充,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?

的人

5 个答案:

答案 0 :(得分:206)

  • 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
  

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

答案 1 :(得分:22)

这个excellent answer类似的问题(不幸的是我以前找不到)帮助我解决了这个问题。

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

  

SQL Developer将按此顺序查看以下位置以获取tnsnames.ora文件

     

$ HOME / .tnsnames.ora
      $ TNS_ADMIN / tnsnames.ora中
      注册表中的TNS_ADMIN查找键       /etc/tnsnames.ora(非windows)
      $ ORACLE_HOME /网络/ 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中显示您的条目。

答案 2 :(得分:6)

我遇到了同样的问题,tnsnames.ora适用于所有其他工具,但SQL Developer不会使用它。我在网上找到了我能找到的所有建议,包括这里提供的链接上的解决方案 没有任何效果。

事实证明,数据库正在缓存tnsnames.ora的备份副本,例如tnsnames.ora.bk2tnsnames09042811AM4501.baktnsnames.ora.bk等。普通用户无法读取这些文件。< / p>

我怀疑sqldeveloper是名称的模式匹配,它试图读取其中一个备份副本而不能。所以它只是优雅地失败并且在下拉列表中没有显示任何内容。

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

答案 3 :(得分:2)

这对我有所帮助:

发表时间:2011年8月12日4:54

设置tnsnames目录 tools-&gt;偏好设置 - &gt;数据库 - &gt;高级 - &gt; Tnsnames目录

https://forums.oracle.com/forums/thread.jspa?messageID=10020012&#10020012

答案 4 :(得分:0)

在较新版本的macOS上,还必须设置def ex(): killProcessIfRunning('process') # replace with the name of the same process you started with os.system('TASKKILL /F /IM Trailling.exe') 。 [1]的最简单/最安全的方法是创建java.library.path文件并按如下方式填充文件:

~/.sqldeveloper/<version>/sqldeveloper.conf

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