我有多个版本的Oracle,它保存了tnsnames.ora文件到处。旧版本被保存在oracle下的程序文件中,但是新版本被存储在我的硬盘驱动器的应用程序目录下。如何判断.net调用使用哪个tnsnames.ora文件?
我正在使用Oracle提供的.net库来连接.net应用程序,它告诉我找不到要连接的名称。
我已经更新了所有可以找到的tnsnames.ora文件。有没有办法告诉我的应用程序试图用什么tnsnames.ora连接到Oracle?
我有多个版本的Oracle,它保存了tnsnames.ora文件到处。旧版本被保存在oracle下的程序文件中,但是新版本被存储在我的硬盘驱动器的应用程序目录下。如何判断.net调用使用哪个tnsnames.ora文件?
我正在使用Oracle提供的.net库来连接.net应用程序,它告诉我找不到要连接的名称。
我已经更新了所有可以找到的tnsnames.ora文件。有没有办法告诉我的应用程序试图用什么tnsnames.ora连接到Oracle?
即将迟到了,但我用Sysinternals' procmon.exe做这样的事情。下面是我的笔记对自己说:
以下链接可能提供一些信息:
http://www.dba-oracle.com/t_windows_tnsnames.ora_file_location.htm
http://dbaforums.org/oracle/index.php?showtopic=2554
对于你的开发环境,你可以尝试把在tnsnames.ora在你的可执行程序,现在的关系而产生的目录你找出哪一个正在使用。使用的第一个tnsnames.ora是运行应用程序的当前目录中的一个。
您可以使用环境变量TNS_ADMIN将所有连接合并到一个位置。特别是在多个家庭环境中,这非常有用。
将TNS_ADMIN变量设置为tnsnames.ora文件所在的路径。请注意,该文件可以存储在任何地方,但通常位于ORACLE_HOME \ network \ admin之一下。
IC
我使用了这个解决方案,它看起来很棒。 – dtc 2010-11-02 21:12:56
我只是碰到了这个问题的tnsnames.ora。这是我在我的程序中的注释: '注意:使用Ora 11 OracleDataAdaptor构建的程序。为了找到'数据库名', ORACLE \ KEY_OraClient11g_home1注册表项必须具有TNS_ADMIN的值,指向 TNSNAMES.ORA的正确目录。
也许我很呆,但是,这是否回答了这个问题? – Brian 2013-05-29 22:59:19
这种类型的反馈必须作为评论发布,而不是作为问题的答案。 – 2013-05-29 22:59:46
非常感谢你这个答案,似乎把tnsnames.ora直接放在同一个地方是非常广为人知的。我已经[写了这个](http://www.matthewedmondson.info/2012/10/using-tnsnamesora-with-your-net.html)并引用了你的答案。再次感谢! – 2012-10-14 22:37:59
@m。埃德蒙森非常有趣的博客文章,我特别喜欢类比DNS。另外,我赞赏引用,谢谢。 – 2012-10-25 11:00:54
没问题,很高兴你觉得它很有趣。 – 2012-10-25 12:59:41