8

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?

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
Alexis Eggermont
  • 7,665
  • 24
  • 60
  • 93

3 Answers3

11

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.

LuckyLikey
  • 3,504
  • 1
  • 31
  • 54
spoorthi vaidya
  • 411
  • 5
  • 9
3

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

maneesh
  • 919
  • 8
  • 6
0

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>
jaycer
  • 2,941
  • 2
  • 26
  • 36
  • That's a good general solution. The interesting thing about the actual value in your answer is that it appears to be a default location that the Oracle libraries will use anyway. I.e you don't need to set TNS_ADMIN at all for ODBC in this case. – Christopher Jones Mar 24 '22 at 09:30