seiti.eti.br

programming & gadgets


by seiti tt seiti

Lembre-se de substituir 127.0.0.1 pelo IP que roda o servidor Oracle XE. O driver OraOLEDB.Oracle acompanha o pacote Oracle Developer Tools for Visual Studio.

A SP add_linkedserver abaixo funciona para o Oracle XE:

EXEC sp_addlinkedserver @server = ‘ORA’, @srvproduct = ‘Oracle’, @provider = ‘OraOLEDB.Oracle’, @datasrc = ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))’ GO

É necessário também ticar a opção Allow inprocess nas propriedadas do provider. É possível acessar os provedores em:

*Server Objects* → *Linked Servers* → *Providers*

Depois é só configurar um usuário e senha para o Linked Server gravado através da SP sp_addlinkedsrvlogin:

EXEC sp_addlinkedsrvlogin @rmtsrvname = ‘ORA’, @useself = ‘FALSE’, @rmtuser = ‘orausr’, @rmtpassword = ‘orapass’ GO

Note que no MSSQL2005 há um problema referente aos campos number no Oracle e int no MSSQL. O provedor não consegue fazer a conversão, lançando um erro de conversão para numeric.

Já no SQL2008 parece funcionar.

As consultas podem ser realizadas através do comando openquery:

SELECT * FROM openquery(ORA, ‘SELECT * FROM TABELA’)