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
Comments