2010-06-18 120 views
3

我有多个版本的Oracle,它保存了tnsnames.ora文件到处。旧版本被保存在oracle下的程序文件中,但是新版本被存储在我的硬盘驱动器的应用程序目录下。如何判断.net调用使用哪个tnsnames.ora文件?

我正在使用Oracle提供的.net库来连接.net应用程序,它告诉我找不到要连接的名称。

我已经更新了所有可以找到的tnsnames.ora文件。有没有办法告诉我的应用程序试图用什么tnsnames.ora连接到Oracle?

回答

8

即将迟到了,但我用Sysinternals' procmon.exe做这样的事情。下面是我的笔记对自己说:

  1. 开始procmon.exe
  2. 文件>捕捉事件关闭捕捉
  3. 显示文件系统活动按键(右边剩下的应该是未设置)
  4. 文件>捕捉事件开始捕捉
  5. 要监视
  6. 执行活动
  7. 文件>捕捉事件停止捕获
  8. 工具>文件摘要找到的文件名列表
3

以下链接可能提供一些信息:

http://www.dba-oracle.com/t_windows_tnsnames.ora_file_location.htm

http://dbaforums.org/oracle/index.php?showtopic=2554

对于你的开发环境,你可以尝试把在tnsnames.ora在你的可执行程序,现在的关系而产生的目录你找出哪一个正在使用。使用的第一个tnsnames.ora是运行应用程序的当前目录中的一个。

+0

非常感谢你这个答案,似乎把tnsnames.ora直接放在同一个地方是非常广为人知的。我已经[写了这个](http://www.matthewedmondson.info/2012/10/using-tnsnamesora-with-your-net.html)并引用了你的答案。再次感谢! – 2012-10-14 22:37:59

+0

@m。埃德蒙森非常有趣的博客文章,我特别喜欢类比DNS。另外,我赞赏引用,谢谢。 – 2012-10-25 11:00:54

+0

没问题,很高兴你觉得它很有趣。 – 2012-10-25 12:59:41

3

您可以使用环境变量TNS_ADMIN将所有连接合并到一个位置。特别是在多个家庭环境中,这非常有用。

将TNS_ADMIN变量设置为tnsnames.ora文件所在的路径。请注意,该文件可以存储在任何地方,但通常位于ORACLE_HOME \ network \ admin之一下。

IC

+0

我使用了这个解决方案,它看起来很棒。 – dtc 2010-11-02 21:12:56

0

我只是碰到了这个问题的tnsnames.ora。这是我在我的程序中的注释: '注意:使用Ora 11 OracleDataAdaptor构建的程序。为了找到'数据库名', ORACLE \ KEY_OraClient11g_home1注册表项必须具有TNS_ADMIN的值,指向 TNSNAMES.ORA的正确目录。

+0

也许我很呆,但是,这是否回答了这个问题? – Brian 2013-05-29 22:59:19

+0

这种类型的反馈必须作为评论发布,而不是作为问题的答案。 – 2013-05-29 22:59:46

相关问题