Connecting to Oracle from SQL Server
In: SQL Server
5
Jan
2009
Unfortunately, setting up a linked server to Oracle is not as easy as it should be. In fact, you’ll have to install some software on your server to make things work. I’ve put together a short guide on connecting to Oracle from SQL Server. The process doesn’t take very long but there are several hoops to jump through.
- Install Oracle Database 10g Client Release 2
- Install using the InstantClient option
- Install Oracle 10g Release 2 ODAC (64-bit, 32-bit)
- Select the Oracle Data Access Components option (not .NET!)
- Edit TNSNAMES.ora
- <install directory>Product10.2.0ClientnetworkADMINTNSNAMES.ora (i.e. C:OracleProduct10.2.0ClientnetworkADMINTNSNAMES.ora)
- There is a very specific format to the network configuration file. Here is an example to get you started (just copy & paste multiple entries if necessary):
DMDEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVERNAME)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = FRIENDLYNAME)
)
)
There are a couple of things you need to change:
- HOST = SERVERNAME. The value SERVERNAME should be changed to reflect the actual address or hostname of the target system.
- SERVICE_NAME = FRIENDLYNAME. FRIENDLYNAME is the name by which you refer to this actual connection.
- REBOOT!
- Configure provider in SQL Server

OraOLEDB.Oracle Provider Menu Item
- Databases→DBName→Server Objects→Linked Servers→Providers→OraOLEDB.Oracle→Properties→Enable “Allow inprocess”
- Create a linked server to the Oracle Database
- General
- Linked Server: A name of your choosing which you will use when querying using four-part naming conventions.
- Provider: Oracle Provider for OLE DB
- Product Name: “Oracle” is fine here
- Data Source: This should match the HOST you defined in TNSNAMES.ora

Create a Linked Server
- Security
- Select Be made using this security context and supply the remote login and password
- Query the linked server:
SELECT TOP 10 * FROM LINKEDSERVERNAME..SYS.HELP
4 Responses to Connecting to Oracle from SQL Server
HOWTO: Setup SQL Server Linked Server to MySQL | Idea Excursion
February 25th, 2009 at 3:54 pm
[...] Server the ability to connect to a wide range of other systems. I’ve already written about how to connect Oracle and SQL Server. In this post, I’m going to go through the steps necessary to connect SQL Server and MySQL. [...]
Adebimpe
April 15th, 2009 at 9:42 am
this is a really cool guide…it sorted out the problem i had with linked servers, forgot to tick the allow inprocess for the provider i created
Jay
April 29th, 2009 at 4:08 pm
I’ve tried using both the Oracle provider OraOLEDB.Oracle and the SQL Provider MSDAORA.
Unable to get the OraOLEDB.Oracle provider to work at all. The MSDAORA provider return the error message ‘provider ran out of memory’ when trying to do an update to Oracle.
Suggestions?
Taylor Gerring
April 29th, 2009 at 5:20 pm
The first things that come to mind to test are:
1. Do SELECT statements work?
2. How much data is the UPDATE statement modifying?