Conecte aplicativos Oracle no Windows ao SQL Server.
Você pode usar o Gateway de Banco de Dados da Oracle para ODBC (DG4ODBC) e o Driver ODBC do SQL Server para conectar o Oracle ao SQL Server.
DG4ODBC vem como parte do Oracle 11g e posterior, sem custo adicional, e é compatível com Oracle 10g e depois.
O DG4ODBC interage com Serviços Heterogêneos (um componente de banco de dados Oracle) para permitir que aplicativos cliente Oracle acessem bancos de dados não Oracle. Os dados não Oracle são integrados de forma transparente e, portanto, os aplicativos cliente Oracle não sabem que os dados estão armazenados em um banco de dados remoto de outro fornecedor
As instruções a seguir mostram como conectar o Oracle no Windows ao SQL Server. Para obter mais informações sobre DG4ODBC, consulte nossos tutoriais DG4ODBC para Windows.
- Baixe o driver ODBC do SQL Server para sua plataforma Windows. (Registro obrigatório.)
- Instale e licencie o driver ODBC do SQL Server na máquina Windows em que o DG4ODBC está instalado.
Para obter instruções de instalação, consulte a documentação do driver ODBC do SQL Server.
- No Administrador de fonte de dados ODBC em sua máquina DG4ODBC, configure um DSN do sistema que se conecte à sua instância do SQL Server.
Para obter instruções sobre como configurar fontes de dados, consulte a documentação do driver ODBC do SQL Server.
Windows de 64 bits Você precisa verificar se sua versão do DG4ODBC é de 32 bits ou 64 bits. Para fazer isso, inicie o Gerenciador de Tarefas do Windows e escolha a guia Processos. Em uma janela do prompt de comando, digite dg4odbc --help. No Gerenciador de Tarefas do Windows, procure o processo DG4ODBC. Se o nome da imagem for "dg4odbc.exe *32", DG4ODBC é de 32 bits. Se o nome da imagem for "dg4odbc.exe", DG4ODBC será de 64 bits. Pressione CTRL+C na janela do Prompt de Comando, quando tiver usado o Gerenciador de Tarefas do Windows para descobrir a arquitetura do DG4ODBC.
Se você tiver a versão de 64 bits do DG4ODBC, precisará executar a versão de 64 bits do ODBC Administrator. Para fazer isso, abra Ferramentas Administrativas no Painel de Controle e abra Fontes de Dados (ODBC). (No Windows Server 2003 e anterior, o miniaplicativo do Painel de Controle que inicia o Administrador ODBC é rotulado como Fontes de Dados. No Windows 8 e posterior, o miniaplicativo do Painel de Controle é rotulado como Fontes de Dados ODBC (64 bits).)
Se você tiver a versão de 32 bits do DG4ODBC, precisará executar a versão de 32 bits do ODBC Administrator. Para fazer isso, na caixa de diálogo Executar do Windows, digite:
%windir%\syswow64\odbcad32.exe
- Crie um arquivo init DG4ODBC. Para fazer isso, mude para o diretório %ORACLE_HOME%\hs\admin. Crie uma cópia do arquivo initdg4odbc.ora. Nomeie o novo arquivo
initmssql.ora
.
Observação Nestas instruções, substitua %ORACLE_HOME% pelo local do seu diretório Oracle HOME. Por exemplo, C:\oraclexe\app\oracle\product\11.2.0\server.
- Certifique-se de que esses parâmetros e valores estejam presentes em seu arquivo init:
HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
- Adicione uma entrada a %ORACLE_HOME%\network\admin\listener.ora que cria um SID_NAME para DG4ODBC. Por exemplo:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=mssql) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- Adicione uma entrada DG4ODBC a %ORACLE_HOME%\network\admin\tnsnames.ora que especifica o SID_NAME criado na etapa anterior. Por exemplo:
MSSQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = mssql) ) (HS = OK) )
Substitua oracle_host com o nome do host de sua máquina Oracle.
- Inicie (ou reinicie) o Oracle Listener:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Conecte-se ao seu banco de dados Oracle no SQL*Plus.
- No SQL*Plus, crie um link de banco de dados para a instância do SQL Server de destino. Por exemplo:
CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';
Substitua my_sqlserver_user e my_sqlserver_password com um nome de usuário e senha válidos para a instância do SQL Server de destino.
Observações
- Se você tiver problemas para se conectar ao SQL Server do Oracle, habilite o rastreamento DG4ODBC e verifique os arquivos de rastreamento gravados no diretório %ORACLE_HOME%\hs\trace. Para habilitar o rastreamento DG4ODBC, adicione a linha HS_FDS_TRACE_LEVEL =DEBUG ao initmssql.ora e então inicie/reinicie o listener Oracle. Se o diretório de rastreamento não existir, crie-o.
- Se você habilitar o rastreamento do ODBC Driver Manager, mas não obtiver um arquivo de rastreamento ou um arquivo de rastreamento vazio, altere o local do arquivo de rastreamento para o diretório TEMP do Windows. Por exemplo, C:\Windows\Temp\SQL.log.
Problemas ao acessar seus dados
Se você tiver algum problema ao tentar ler/gravar dados no SQL Server do Oracle, faça o seguinte:
- Certifique-se de que o problema não seja com o aplicativo que você está usando, por exemplo, SQL Developer, Toad e assim por diante. Teste o problema usando SQLPlus na máquina Oracle. Se o problema ocorrer apenas, por exemplo, no Toad e não no SQLPlus, informe o problema às pessoas que oferecem suporte ao Toad.
- Tente limitar o problema à coluna/tabela do problema. Digamos, por exemplo, que você esteja executando um
select * from table@link
e você tem apenas 1 coluna que está causando o problema, tente executarselect column from table@link
e veja se dá o mesmo erro. Isso nos ajuda a diagnosticar o problema. - Se você precisar entrar em contato com o Suporte da Easysoft com um problema de DG4ODBC:
- Ative o rastreamento Dg4ODBC em seu arquivo $ORACLE_HOME/hs/admin/initmssql.ora:
HS_FDS_TRACE_LEVEL = Debug
- Pare e inicie seu ouvinte Oracle.
- Reproduza o problema no SQL Plus. Se você não obtiver um arquivo de rastreamento do Oracle em sua pasta $ORACLE_HOME/hs/log, seu ouvinte não foi reiniciado ou o Oracle não foi configurado corretamente.
- Envie a equipe de suporte da Easysoft ([email protected]):
- Saída mostrando o login no SQLPlus, a consulta sendo executada e o erro exibido.
- Uma cópia do arquivo de log initmssql do Oracle. Compacte/compacte este arquivo se tiver mais de 1 MB.
- Uma cópia do seu arquivo initmssql.ora.
- Uma cópia dos arquivos que terminam em _install.info de /usr/local/easysoft. Assim que tivermos todos os itens, a equipe de suporte da Easysoft deverá ser capaz de descobrir rapidamente se este é um problema/bug de configuração do Oracle no Oracle, configuração/bug do Easysoft ou se simplesmente precisamos de mais informações.
- Ative o rastreamento Dg4ODBC em seu arquivo $ORACLE_HOME/hs/admin/initmssql.ora: