I've 64-bit SQL Server 2008 R2 (SP1) on 64-bit Windows Server 2008 R2 (SP1) and Oracle 11.2g. I installed the Runtime option of 64-bit Oracle 11g Client Release 2, edited %ORACLE_HOME%\Network\Admin\TNSNAMES.ora and restarted the SQL Server instance and Windows server. When I created a linked server and tested the connection, I got "The OLE DB provider 'OraOLEDB.Oracle' has not been registered. (Microsoft SQL Server, Error: 7403)".
I ran regsvr32 OraOLEDB11.dll and restarted the Windows server but got the same error. The PATH includes %ORACLE_HOME%\bin directory. The 'Authenticated Users' have read & execute permissions to %ORACLE_HOME% directory and its subdirectories and files. Any idea how to fix this?
Now a linked server to Oracle 11.2g works. I reinstalled only Oracle Data Access Components for Oracle Client 18.104.22.168.0 and performed step 8 presented in http://thiruna.blog.com/2010/10/28/making-linked-server-connection-between-sql-server-64-bit-oracle-32-bit/.