Working with oracle 11.2.0.1.0 on Windows 2008 R2 Example Values : * 1.2.3.4 - ORACLE db server IP address * D:\Oracle\Administrator\product\11.2.0\dbhome_1 - ORACLE database directory * 15.16.17.18 - SQL Server IP address * SQLSRV_DB_NAME - SQL Server db name * SQLSRV_DB_USER - SQL Server db user * SQLSRV_DB_PWD - SQL Server db password * ODBC_DSN - ODBC DSN for connecting to SQL Server * SQLSRV_DB_TNS - tnsname * SQLSRV_DB_NAME_LINK - database link Start C:\Windows\System32\odbcad32.exe Add SQL Server ODBC System DSN with name ODBC_DSN - Check connection Start C:\Windows\SysWOW64\odbcad32.exe Add SQL Server ODBC System DSN with name ODBC_DSN - Check connection Create in D:\Oracle\Administrator\product\11.2.0\dbhome_1\hs\admin\initODBC_DSN.ora with this text inside HS_FDS_CONNECT_INFO = ODBC_DSN HS_FDS_TRACE_LEVEL = off Modify D:\Oracle\Administrator\product\11.2.0\dbhome_1\srvm\admin\init.ora global_names = FALSE Restart OracleDatabaseService Append in file D:\Oracle\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=ODBC_DSN) (ORACLE_HOME=D:\Oracle\Administrator\product\11.2.0\dbhome_1) (PROGRAM=dg4odbc) ) ) Append in file "D:\Oracle\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora" SQLSRV_DB_TNS= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 1.2.3.4) (PORT = 1521) ) ) (CONNECT_DATA = (SID=ODBC_DSN) ) (HS=OK) ) Reload in command prompt listener : lsnrctl stop lsnrctl start Create Database Link CREATE PUBLIC DATABASE LINK SQLSRV_DB_NAME_LINK CONNECT TO SQLSRV_DB_USER IDENTIFIED BY "SQLSRV_DB_PWD" -- beware has to be -> "password" <- not -> password <- using 'SQLSRV_DB_TNS ' Test select * from dual@SQLSRV_DB_NAME_LINK