Ola pessoal, faz algum tempo que não escrevo nada, como falei no inicio do blog, não tenho muita paciencia para escrever 😛

Mas recentemente tive uma experiência e gostaria de compartilhar com vocês. Apesar de não ser especialista em ORACLE (Na verdade eu odeio ORACLE), mas como DBA SQL Server, muitas vezes necessitamos fazer um extração de dados do ORACLE para o SQL Server, ou criar um linked server. Sempre tive problemas com a instalação do client do ORACLE, mas desta vez encontrei um site que traz um guia detalhado da instalação. Segue abaixo as dicas:

A solução abaixo é baseada no Oracle 11g version, você pode fazer o download do link abaixo
http://www.oracle.com/technology/software/products/database/index.html
Baixe os 2 clientes Oracle 32bits e 64bits

Se você já tiver um client oracle faça o backup dos arquivos tnsnames.ora e sqlnet.ora que ficam na pasta (%ORACLE_HOME%/network/ADMIN/.)

Desinstale e Delete versões antigas dos clients e reboote o servidor. (Talvez você precise reiniciar o servidor para apagar as pastas do ORACLE client

Rode o setup.exe do Cliente 32bits (Antes do 64bits)

Selecione “Custom” e no “Select Installation Type

Selecione Oracle Base and Path.

Você precisa instalar os itens abaixo

UPDATE: Instale também o “Oracle Service for Microsoft Transaction Server” para poder usar a feature de transação

Depois da instalação restaure o TNSNAMES.ORA na nova pasta (%ORACLE_HOME%/network/admin).

Repita os passos acima para a instalação do client Oracle 11g 64 bits

o diretório base é o mesmo do 32 bits, mas o Path é diferente

Oracle 32bit Client Path: C:/Oracle/product/11.1/client_32,

Oracle 64bit Client Path: C:/Oracle/product/11.1/client_64.

Talvez você veja uma mensagem “OracleMTSRecoveryService already exists” selecione “Ignore

Eu sei que ninguém gosta de mudar o Registry  em uma maquina de produção mas acredite em mim, é necessário mudar o registry

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI and

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll (old: SQLLib80.dll)
  • OracleXaLib = oraclient11.dll (old: xa80.dll)

Você pode testar usando sqlplus.exe or tnsping.exe no command prompt.

Agora você pode acessar o Oracle OLEDB provider no BIDS (Business Intelligence Development Studio) e SSMS (SQL Server Management Studio)

Lembre-se de uma coisa

BIDS é baseado em Visual Studio 32bit modules. Quando você desenvolve um pacote SSIS vc usa o modulo 32bit do Oracle OLEDB .
Quando você roda o pacote em um ambiente 64bit.

NOTA1:
Quando você estiver desenvolvendo você pode receber a mensagem de warning que pode ser ignorado: “Warning: Cannot retrieve the column code page info from OLE DB…”.

NOTA2:
Você pode receber a mensagem “Cannot obtain the required interface (“IID_IDBSchemaRowset”) from OLE DB Provider “OraOLEDB.Oracle” for linked server XXX (Error:7399)”.

Para resolver isso abra as propriedades do provider OraOLEDB.Oracle, e ative “Enable” for “Allow inprocess” usando o caminho Instance>>Sever Objects>>Linked Servers>>Providers>>OraOLEDB.Oracle


Caso queiram ver o post original em inglês

http://knol.google.com/k/accessing-oracle-from-64bit-sql-server-or-ssis#

Anúncios