Buenas! 🙂
Nos últimos meses estou envolvido em um curso oferecido pela Microsoft (curso 0800) sobre o MSSQL 2012.
Tem sido um aprendizado muitíssimo interessante. Legal ver as features que existem e alguns conceitos que são diferentes. Curti o AlwaysOn principalmente… o/
A parte final desse projeto constituí a criação e um ambiente com duas máquinas (VM’s), criação de uma database em cada, replicação e tal.
O professor nos disse que o que não víssemos no curso e fosse aplicado por conta, seria considerado um plus.
Pensando nisso, e como trabalho na área Oracle, imaginamos, meu colega Bruno e eu, o quão complicado seria implementar uma comunicação entre os bancos.
Cenário:
Uma tabela de pedidos no MSSQL. Quando o pedido é aprovado (PEDIDO_APROVADO=0 ou =1), a linha fosse transportada para uma tabela em um db Oracle, através de uma trigger after update, por exemplo! 🙂
Imagine que a empresa tenha uma aplicação de terceiros, que funciona em Oracle e precisa desses dados para informações internas, integração, BI, enfim…
Utilizei a figura do Linked Server, a qual irei demonstrar aqui! go! go! go!

Passo 1: Instalar o Oracle Client 11gR2 no host com MSSQL
32bit:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html

64bit:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

* O client deve obedecer a versão do Windows onde está instalado o MSSQL (ex.: 32bit ou 64bit)

Passo 2: Instalar o Oracle Data Access Components (ODAC) no host com MSSQL
32bit:
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

64bit:
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

Passo 3: Configurar o tnsnames.ora do client:
Ex.:
G:Oracle_installproduct11.2.0client_1networkadmin

Configurar o tnsnames conforme exemplo:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”IyB0bnNuYW1lcy5vcmEgTmV0d29yayBDb25maWd1cmF0aW9uIEZpbGU6IEc6T3JhY2xlX2luc3RhbGxwcm9kdWN0MTEuMi4wY2xpZW50XzFuZXR3b3JrYWRtaW50bnNuYW1lcy5vcmEKIyBHZW5lcmF0ZWQgYnkgT3JhY2xlIGNvbmZpZ3VyYXRpb24gdG9vbHMuCgpGQUJSSUtBTSA9CiAgKERFU0NSSVBUSU9OID0KICAgIChBRERSRVNTID0gKFBST1RPQ09MID0gVENQKShIT1NUID0gMTkyLjE2OC4xLjEzNCkoUE9SVCA9IDE1MjEpKQogICAgKENPTk5FQ1RfREFUQSA9CiAgICAgIChTRVJWRVIgPSBERURJQ0FURUQpCiAgICAgIChTRVJWSUNFX05BTUUgPSBGQUJSSUtBTS5TMkJTUlZTLlMyQi5DT00pCiAgICApCiAgKQ==” hover_enabled=”0″]IyB0bnNuYW1lcy5vcmEgTmV0d29yayBDb25maWd1cmF0aW9uIEZpbGU6IEc6T3JhY2xlX2luc3RhbGxwcm9kdWN0MTEuMi4wY2xpZW50XzFuZXR3b3JrYWRtaW50bnNuYW1lcy5vcmEKIyBHZW5lcmF0ZWQgYnkgT3JhY2xlIGNvbmZpZ3VyYXRpb24gdG9vbHMuCgpGQUJSSUtBTSA9CiAgKERFU0NSSVBUSU9OID0KICAgIChBRERSRVNTID0gKFBST1RPQ09MID0gVENQKShIT1NUID0gMTkyLjE2OC4xLjEzNCkoUE9SVCA9IDE1MjEpKQogICAgKENPTk5FQ1RfREFUQSA9CiAgICAgIChTRVJWRVIgPSBERURJQ0FURUQpCiAgICAgIChTRVJWSUNFX05BTUUgPSBGQUJSSUtBTS5TMkJTUlZTLlMyQi5DT00pCiAgICApCiAgKQ==[/et_pb_dmb_code_snippet]

FABRIKAM = nome da minha empresa fictícia e nome que será utilizado para conexão;
HOST = ip do servidor linux com Oracle;

Passo 4: REBOOT! Do servidor com MSSQL! 😀

Passo 5: Alterar a configuração no OraOLEDB.Oracle
– Marcar a opção: “Allow inprocess”

Passo 6: Criação do Linked Server:

General
Linked Server: Nome a sua escolha. Será utilizado na consulta posteriormente
Provider: Oracle Provider for OLE DB
Product Name: Podemos colocar Oracle aqui! 🙂
Data Source: Deve refletir a entrada de TNS configurada anteriormente

Security
Selecione:
Be made using this security context
E forneça o user/pass oracle desejado.

Passo 7: Execute a consulta! 😀

Podemos ver na janela do prompt o select efetuado no sqlplus, no Oracle, e na atrás o MSSM efetuando a mesma consulta, também no Oracle.

Exemplos de sintaxe que podem ser utilizadas:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”U0VMRUNUIFtJRF0KLFtURVhUT10KRlJPTSBbRkFCUklLQU1fT1JDTF0uLltGQUJSSUtBTV0uW1RFU1RFXQpHTwoKSU5TRVJUIElOVE8gW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KKFtJRF0sW1RFWFRPXSkgdmFsdWVzICgxLCd0ZXN0ZScpCkdPCgpVUERBVEUgW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KU0VUIFRFWFRPID0gJ3Rlc3Rldml0b3InCldIRVJFIFtJRF09MQpHTwoKREVMRVRFIEZST00gW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KV0hFUkUgW0lEXSA9IDEKR08=” hover_enabled=”0″]U0VMRUNUIFtJRF0KLFtURVhUT10KRlJPTSBbRkFCUklLQU1fT1JDTF0uLltGQUJSSUtBTV0uW1RFU1RFXQpHTwoKSU5TRVJUIElOVE8gW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KKFtJRF0sW1RFWFRPXSkgdmFsdWVzICgxLCd0ZXN0ZScpCkdPCgpVUERBVEUgW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KU0VUIFRFWFRPID0gJ3Rlc3Rldml0b3InCldIRVJFIFtJRF09MQpHTwoKREVMRVRFIEZST00gW0ZBQlJJS0FNX09SQ0xdLi5bRkFCUklLQU1dLltURVNURV0KV0hFUkUgW0lEXSA9IDEKR08=[/et_pb_dmb_code_snippet]

E como dizemos por aqui: deu pra bola! o/
Nos fones: