'Where is TNSNAMES.ORA?

I am working on a Windows server and access Oracle databases using the Oracle ODBC driver. I have Oracle ODBC connections that work fine on this machine.

However I want to add a new connection, and when testing it I get the error

Unable to connect
SQL State=S1000
[Oracle][ODBC][Ora] ORA-12170: TNS: Connect timeout occurred

I presume, though I am no DBA, that this has something to do with my TNS Service Name not being in TNSNAMES.ORA which points oracle toward the right server, port, etc.

However I cannot find TNSNAMES.ORA

I have an ORACLE_HOME environment variable, but it is empty.

Where can I find this file or otherwise configure my TNS names?



Solution 1:[1]

tnsnames.ora is located in the ORACLE_HOME\network\admin directory on Windows. Oracle home path is usually C:\app\oracle_account\product\12.1.0\dbhome_1 in windows.

Solution 2:[2]

How to find 'TNSNAMES.ORA' on Windows

Step 1) Please check if Oracle has been installed on your system. On Cmd, Type 'sql plus' enter image description here

  1. Then Control Panel -> Advanced System Settings ->

enter image description here

3)On the 'Advanced' tab, select 'Environment Variables' Then check 'Oracle ' or 'TNS_ADMIN' on System Variables.

enter image description here

  1. Here, on 'TNS_ADMIN' will get the path for TNS file

enter image description here

Solution 3:[3]

The path to the tns file can be listed in machine.config too.

<oracle.manageddataaccess.client>
 <version number="4.121.2.0">
  <settings>
    <setting name="TNS_ADMIN" value="C:\app\client\...\product\12.1.0\client\network\admin"/>
  </settings>
 </version>
</oracle.manageddataaccess.client>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 LuckyLikey
Solution 2
Solution 3 jaycer