我同时安装了32位和64位Oracle 11g驱动程序。我搜索我的电脑寻找的文件名为"tnsnames.ora“,并发现3个在以下位置:
代码语言:javascript运行复制1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN
3. C:\Windows\TNStnsnames.ora文件的第三个位置的存在让我感到惊讶。
我的PC上安装了以下Oracle客户端:
代码语言:javascript运行复制"C:\Program Files (x86)\Quest Software\Toad for Oracle 11.6\Toad.exe"
"C:\Program Files\Devart\dbForge Studio Express for Oracle\dbforgeoracle.exe"根据每个程序的位置(Program (x86)和c:\Program ),我认为蟾蜍( 32位程序)应该使用32位驱动程序,而dbForge应该使用64位驱动程序。
dbForge似乎在#2或#3的位置使用tnsnames.ora文件。我知道这一点,方法是系统地重命名除一个tns文件之外的所有tns文件,然后在尝试从应用程序创建新连接时检查从该文件读取的连接名是否可用。
但是,蟾蜍似乎只识别位置#3中的tnsnames.ora文件,而它根本不识别位置2中的tnsnames.ora文件!(因为它是一个32位程序,我没想到它会识别位置2中的tns文件,情况就是这样)。总结蟾蜍测试是为了希望清晰,蟾蜍只识别位置3的tns文件。
其他同事在他们的机器上的位置3中没有tns文件。我不知道我为什么这么做。当我运行蟾蜍时,它显示了下面的2 Home,其中32位的Home是活动的。
代码语言:javascript运行复制OraClient11g_home1 (11.2.0.3)
ORACLE_HOME:C:\app\C39293\product\11.2.0\client_1
ORACLE_HOME_NAME:OraClient11g_home1
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:
LOCAL:
Client DLL:C:\app\C39293\product\11.2.0\client_1\oci.dll
TNSNames.ora:
SQLNet.ora:
LDAP.ora:
Login.sql:
GLogin.sql:
In system PATH:No
Home is valid:No
OraClient11g_home1_32bit (11.2.0.3)
ORACLE_HOME:c:\oracle\product\11203_32bit\CLIENT_1
ORACLE_HOME_NAME:OraClient11g_home1_32bit
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1_32bit
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:c:\oracle\product\11203_32bit\CLIENT_1\dbs
LOCAL:
Client DLL:c:\oracle\product\11203_32bit\CLIENT_1\bin\oci.dll
TNSNames.ora:
SQLNet.ora:
LDAP.ora:
Login.sql:
GLogin.sql:c:\oracle\product\11203_32bit\CLIENT_1\sqlplus\admin\glogin.sql
In system PATH:YesQ1:是OraClient11g_home1的64位主页,还是安装了两个OraClient11g_home1客户端?
Q2:为什么32位蟾蜍不在位置#1而不是只在位置#3使用tns?
Q3:如果我离开位置3的tns文件,那么dbForge和蟾蜍都要工作,但是我想知道为什么,这样我才能准确地了解如何将tns信息从一台机器移动到另一台机器。