Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server I am having a bit of a linked server problem. 

I created a SQL Server linked server and it's been working fine for last 2 years and suddenly not working. 

SQL Server 


  Microsoft SQL Server 2005 - 9.00.5324.00 (X64)   Aug 24 2012 18:28:47 
  Copyright (c) 1988-2005 Microsoft Corporation  Enterprise Edition
  (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)


Oracle client version


  Oracle - OraClient11g_home1


Error 7302:


  Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server.


We have enabled Allow in Process in SQL Server for the Oracle Provider.

Has anyone got any ideas on this and what can be done to avoid this happening again?
linked server is Oracle, the first thing that I tried was to check if the Server hosting the SQL Server instance, was able to connect to the listener on the Oracle Database Server using tnsping.

tnsping searched to the path C:\product\11.1.0\db_1\bin initially, this will initially use the used parameter file 
C:\product\11.1.0\db_1\network\admin\sqlnet.ora

tnsping successfully connected to the Oracle database from the SQL Server box. Then check the Provider details while creating the Linked Server.

The Linked Server provider was Oracle Provider for OLE DB. This is the driver that gets installed along with the Oracle Client Components.

Error 7302 can be a result of MSDAORA.dll not being registered correctly. In this case it had to be an issue with the dll related to Oracle Provider for OLE DB i.e.OraOleDB.dll. Before checking the dll related issues,to check if something was missing in the registry. The list of Providers in the Linked Server is populated from the Providers key in the registry. 

Error 7303 means that the username and password combination is not correct, hence the login failed for the user specified in the Linked Server. When the correct login credentials for the Oracle database were entered, the Linked Server got created successfully!