Olá pessoal tudo certo?
No post de hoje irei abordar sobre uma falha que aconteceu depois que configurei o linked server do SQL Server para o Oracle, no post anterior mostrei como configurar o linked server, porém depois de configurado, os usuários reclamaram que não estavam conseguindo executar consultas no SQL Server buscando dados no Oracle.
Os usuários estavam tentando executar um select simples:
SELECT * FROM OPENQUERY(LinkedServerName, ‘select * from oracleschema.tablename’)
Ou
SELECT * FROM LinkedServerName..oracleschema.tablename
Retornava a seguinte mensagem de erro:
“Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server “.
Fiz os testes com o meu usuário no servidor e retornava o resultado esperado, porém quando executava o SELECT em algum client retornava o erro.
Após algumas tentativas e erros encontrei uma thread sobre o erro no fórum sqlservercentral e encontrei a solução e vou compartilhar com vocês.
http://www.sqlservercentral.com/Forums/Topic482481-146-1.aspx
Para solucionar o problema precisamos habilitar a opção “Allow inprocess” na configuração do Provider do Oracle, para realizar essa alteração você tem que ser membro da role Sysadmin.
Para habilitar a opção Allow inprocess você pode fazer tanto por interface gráfica ou por script.
1) Expandir a pasta “Server Objects”
2) Expandir a pasta “Linked Server e Providers”
3) Clicar com o botão direito no provider do Oracle “OraOLEDB.Oracle” e Habilitar a opção “Allow inprocess”
Para fazer via script basta executar o script abaixo:
USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 GO
Bom pessoal até a próxima.


