You are on page 1of 14

Oracle Database permite uma conexão direta entre o seu banco de dados e outros não-Oracle.

Por exemplo, pode acessar (como se fosse uma tabela Oracle) para tabelas MySQL , Microsoft SQL Server,
Informix, Microsoft Access , etc. Isto inclui um serviço chamado a Oracle Transparent Gateway . Este artigo explica a conexão Oracle com o Microsoft Access usando ODBC.



 Descrição e requisitos para a conexão de banco de dados Oracle para Microsoft Access .
 Configurando o computador com o Microsoft Windows com arquivos MDB do Access .
 Configuração do computador no Banco de Dados Oracle .
 Artigos relacionados .
 Créditos .
Descrição e requisitos para a conexão de banco de dados Oracle para Microsoft Access
Descrição
Neste artigo, conectar um banco de dados Microsoft Access (mdb), localizada em um PC com sistema operacional Microsoft Windows XP (embora o exemplo vai servir para qualquer sistema operacional
Microsoft).
Por outro lado, o banco de dados Oracle Database será localizado em um PC rodando GNU / Linux Ubuntu . Diante disso, o sistema é o mais heterogêneo possível (banco de dados principal em Linux e banco de
dados Oracle para o qual nos ligamos no Windows XP).
A figura a seguir descreve o mecanismo utilizado pela Oracle para a conexão:

Pré-requisitos para a conexão
Para conectar-se tabelas de banco de dados da Oracle Microsoft Access (mdb) necessário o seguinte (como mostrado na figura acima):
 No PC você tem o banco de dados Microsoft Access (sistema operacional da Microsoft) precisa:
o Oracle Client (neste artigo vamos explicar como instalá-lo) é gratuita, disponível para download no site da Oracle e sua instalação no "mínimo" (Runtime) é simples.
o ODBC Microsoft Access : já vem pré-instalado com o Microsoft Windows XP, também instalado com o Microsoft Office.
o Microsoft Jet : é pré-instalado no Microsoft Windows XP, também instalado com o Microsoft Access.
o O arquivo de banco de dados Microsoft Access (para este exemplo vamos chamar ajpdsoft_access.mdb ).
 No PC com banco de dados Oracle instalado no GNU / Linux:
o Precisamos, obviamente, o Oracle Database corretamente instalado e porta 1521 aberta no firewall (a porta padrão do Oracle Database, o utilizado para se conectar ao banco de dados de
clientes, o que deve estar aberto).
o Oracle Database deve ter os dados heterogêneos pacote de SQL (localizado por padrão no ORACLE_HOME / RDBMS / admin / caths.sql). Este arquivo de SQL já está funcionando
normalmente, de modo que (com exceções) não precisa correr. Se necessário, vamos abrir uma janela de terminal (no Linux) ou janela de linha de MS-DOS (Windows) de comando, abrimos
SQL * Plus, nos conectamos com um usuário com privilégios suficientes e execute:
Para Windows:
@ C :/ Oracle / RDBMS / admin / caths.sql
Para GNU / Linux:
@ / Oracle / RDBMS / admin / caths.sql
(Alterar as rotas escolhidas na instalação do Oracle Database)
Neste artigo estamos assumindo todo o tempo que o Oracle Database reside em um computador diferente, com o banco de dados Microsoft Access, mas poderia ter, também, o Oracle Database no mesmo
computador Windows que banco de dados Microsoft Access.
O artigo a seguir explica como instalar o Oracle Database 11g no Windows XP:
Instalar o Oracle Database 11g Standard Edition no Windows XP Professional

Configurando o computador com o Microsoft Windows com arquivos MDB do Access
No computador "cliente" com o banco de dados Microsoft Access ( ajpdsoft_access.mdb ) realizar as seguintes tarefas:
 Teremos o mdb com tabelas e dados de aplicativos de acesso. Por exemplo, vamos utilizar uma tabela chamada "contas" com a seguinte estrutura:

E os seguintes dados:

 Vamos criar uma nova fonte de dados ( ODBC ) para o ponto de acesso ao banco de dados Microsoft Access. Isso vai ficar em "Iniciar" - "Configurações" - "Painel de Controle" - "Ferramentas
Administrativas" e executar "Fontes de dados (ODBC)". Vamos abrir o "Data Source Administrator ODBC, pressione na aba" System DSN "(se quisermos que o ODBC está disponível para todos os
usuários do Windows ou" DSN usuário a estar disponível apenas para o usuário com o qual assinou). Em seguida, pressione o botão "Add":

Nós selecionamos os dados de origem "Driver do Microsoft Access (* MDB.) E clique em" Finish ":

Aqui apresentamos o nome da fonte de dados (essencial para estabelecer a ligação com o Oracle), no nosso caso "conexion_oracle_access" e ligação descrição (texto descritivo), no nosso caso "Teste de
Conexão Oracle Access". Em seguida, pressione o botão "Select" para especificar o nome do arquivo eo local ajpdsoft_access.mdb (no nosso caso)

Selecione a unidade ea pasta com o ajpdsoft_access.mdb e pressione "OK":

Nós aceitaremos todas as outras janelas e ter adicionado com sucesso a fonte de dados ODBC Microsoft Access.
 Em seguida, configure o arquivo tnsnames.ora (instalação Oracle Client ou instalação do Oracle Database se na mesma equipa Access). Este arquivo normalmente está localizado na pasta de Oracle
(ORACLE_HOME) de instalação e dentro dele, na subpasta "rede" e, por sua vez, no "admin". Por exemplo:
C :/ ora92/network/admin/tnsnames.ora
Vou abrir com qualquer editor de texto como o Bloco de Notas (Notepad) da Microsoft:

Adicione no final do arquivo de texto selecionada (em azul negrito e abaixo da imagem):

Com o texto:
# TNSNAMES.ORA arquivo de configuração de rede: C: \ ora92 \ NETWORK \ ADMIN \ tnsnames.ora
# Gerados por ferramentas de configuração do Oracle.

conexionoracle =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.100) (PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ajpdsoft)
)
)





conexion_oracle_access =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)
(Host = 192.168.1.100)
(PORT = 1521)
)
(CONNECT_DATA =
(SERVICE_NAME = conexion_oracle_access)
)
(HS = OK)
)


No texto anterior, vamos explicar o que cada coisa para o arquivo tnsnames.ora :
o "Conexionoracle" o que está em negrito é a conexão normal com Oracle Database, não tem nada a ver com a nossa ligação a partir do Oracle para o Access. Colocamos como exemplo, onde
"192.168.1.100" é o IP da máquina com o Oracle Database e GNU / Linux e "ajpdsoft" é o nome do SID do banco de dados Oracle Database.
o "Conexion_oracle_access": nome e seqüência de conexão que será usado para ligar a Oracle com o Access. Podemos usar o nome que você quiser.
 " HOST = 192.168.1.100 "no parâmetro" Host "indicar o nome (hostname) ou IP do computador que executa o banco de dados Oracle Database, no nosso caso, a equipe de GNU /
Linux Ubuntu com o IP 192.168.1.100.
 " SERVICE_NAME = conexion_oracle_access "importante neste parâmetro indicará o nome que demos à fonte de dados (ODBC) na etapa anterior.
 " HS = OK ": com isso, estamos dizendo Oracle para usar o seu serviço esta conexão Serviços Heterogêneos e do Oracle Transparent Gateway . Assim, a Oracle vai tentar a
conexão usando a fonte de dados ODBC especificado.

 Também configurar o arquivo listener.ora localizado na mesma pasta que o arquivo tnsnames.ora . Eu edito, como o arquivo tnsnames.ora com o Bloco de Notas (Notepad). Nós selecionamos o texto
adicionado para conexão Oracle com o acesso:



# Gerados por ferramentas de configuração do Oracle.

OUVINTE =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = PCWXP) (PORT = 1521))
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ajpdsoft)
(ORACLE_HOME = C: \ ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = C: \ ora92)
(SID_NAME = ORCL)
)
(SID_DESC =
(ORACLE_HOME = C: \ ora92)
(SID_NAME = conexion_oracle_access)
(PROGRAM = hsodbc)
)
)

No texto anterior, vamos explicar o que cada coisa para o arquivo listener.ora :
o Tudo o que está em negrito é um exemplo de conteúdo "padrão" neste arquivo (os nomes variam SID do banco de dados, nomes ou IPs do exército, etc.)
o O que está em negrito, de "(SID_DESC =" ...:
 " ORACLE_HOME "pasta de instalação do Oracle Database (se no mesmo time como Access) ou Oracle Client.
 " SID_NAME = conexion_oracle_access "importante neste parâmetro indicará o nome que demos SERVICE_NAME no arquivo tnsnames.ora, no nosso caso, o mesmo
que o ODBC "conexion_oracle_access" (para que não haja confusão.
 " PROGRAMA = hsodbc ": com isso, estamos dizendo Oracle para usar o seu serviço esta conexão Serviços Heterogêneos e do Oracle Transparent Gateway . Assim,
a Oracle vai tentar a conexão usando a fonte de dados ODBC especificado.
 Em seguida, modifique (ou crie se não existe que é lógico) serviço próprio arquivo HS (Serviço heterogêneo ou Transparent Gateway Oracle). Isso irá criar um arquivo com um nome que consiste em:
"init" + "SID nome" + ". Ora". No nosso caso, já que o nome que demos para o SID é conexion_oracle_access , o nome do arquivo a ser criado é:
initconexion_oracle_access.ora
e será localizado em C :/ ora92/hs/admin:

Ela terá o seguinte conteúdo (selecionado em azul a parte interessante, o resto são comentários):

Com o texto:
# Este é um exemplo de arquivo de inicialização do agente contém os parâmetros do SH Isso que estão
# necessários para um agente de ODBC.
#
# SH parâmetros de inicialização
#
HS_FDS_CONNECT_INFO = conexion_oracle_access
HS_FDS_TRACE_LEVEL = 0
HS_FDS_TRACE_FILE_NAME = C: \ ora92 \ hs \ admin \ odbc_access.trc
HS_AUTOREGISTER = TRUE
#
# variáveis de ambiente necessário para o sistema não-Oracle
#
# set <envvar> = valor

Onde:
 HS_FDS_CONNECT_INFO : é o parâmetro mais importante, que irá indicar o nome do SID que criamos no arquivo tnsnames.ora, que por sua vez aponta para o ODBC criado no primeiro
passo. Como sempre, neste artigo, para evitar confusão, sempre nomeado como "conexion_oracle_access".
 HS_FDS_TRACE_LEVEL : indicar o nível de rastreio, com "0" (OFF) desativá-lo. Isso deve ativar somente quando estiver depurando, transformando "1" ou também "ON".
 HS_FDS_TRACE_FILE_NAME : com este parâmetro indica o caminho do arquivo de rastreamento (se habilitado).
 HS_AUTOREGISTER : ativa ou desativa o registro automático de Serviços Heterogêneos. Se (TRUE) informação ativado automaticamente carregado no dicionário servidor. Ativando esta
função com parâmetros serviços do Oracle heterogêneos mais rápida e eficiente.
 Para finalizar as configurações necessárias no computador que contém o banco de dados Microsoft Access, parar e iniciar o ouvinte com o comando:
lsnrctl parada
Isso vai retornar algo como:
C: \> lsnrctl parada
LSNRCTL para 32-bit Windows: Versão 9.2.0.1.0 - Production on 13-Feb-2009 21:43:
25
Copyright (c) 1991, 2002, Oracle Corporation. Todos os direitos reservados.
Conectando a (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0)))
O comando foi concluído com sucesso
C: \>
E eu vou começar com o comando:
lsnrctl início
Isso vai retornar algo como:
C: \> lsnrctl início
LSNRCTL para 32-bit Windows: Versão 9.2.0.1.0 - Production on 13-Feb-2009 21:45:
03
Copyright (c) 1991, 2002, Oracle Corporation. Todos os direitos reservados.
Começando tnslsnr: por favor aguarde ...
Tnslsnr para 32-bit Windows: Versão 9.2.0.1.0 - Produção
arquivo de parâmetros do sistema é C: \ ora92 \ network \ admin \ listener.ora
mensagens de log gravada para C: \ ora92 \ network \ log \ listener.log
Ouvir em: (DESCRIPTION = (ADDRESS = (PROTOCOL = ipc) (pipeName = \ \ \ pipe \ EXTPROC0ipc.
)))
Ouvir sobre: (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = PCWXP) (PORT = 1521)))
Conectando a (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0)))
STATUS do LISTENER
------------------------
Alias OUVINTE
tnslsnr versão de 32 bits do Windows: Versão 9.2.0.1.0 - Produ
ção
Data de Início 13-fev-2009 21:45:05
Uptime 0 dias 0 hr. 0 min. 2 seg
rastreamento Nível off
Segurança OFF
SNMP OFF
Listener arquivo de parâmetro C: \ ora92 \ Network \ Admin \ listener.ora
ouvinte de log arquivo C: \ ora92 \ network \ log \ listener.log
Endpoints Ouvir Resumo ... Service "conexion_oracle_access" tem 1 instância (s). Instância "conexion_oracle_access", desconhecido status, tem 1 handler (s) para este serviço ... serviço "orcl" tem 1 instância
(s). Instância "orcl" , desconhecido status, tem 1 handler (s) para este serviço ... serviço "ajpdsoft" tem 1 instância (s). Instância "ajpdsoft", desconhecido status, tem 1 handler (s) para este serviço ... O
comando foi concluído com sucesso









(Obviamente, o resultado irá variar dependendo da configuração do arquivo listener.ora).
Depois de reiniciar o Listener, faça um teste com o comando da Oracle tnsping :
tnsping conexion_oracle_access
Com o resultado (se bem sucedida):
C: \> tnsping conexion_oracle_access
TNS Ping Utility for 32-bit Windows: Versão 9.2.0.1.0 - Production on 13-FEB-2
09 21:56:33
Copyright (c) 1997 Oracle Corporation. Todos os direitos reservados.
Arquivos de parâmetros usados:
C: \ ora92 \ network \ admin \ sqlnet.ora
TNSNAMES utilizados adaptador para resolver o alias
tentando entrar em contato (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.1.100)
(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = conexion_oracle_access)) (HS = OK)) OK (0 ms)
C: \>


Configuração do computador no Banco de Dados Oracle
 Vamos criar o banco de dados ligação (link ao banco de dados): para isso acessar banco de dados Oracle com qualquer software que pode executar instruções SQL para criar objetos em Oracle.No
nosso caso, usamos um utilitário desenvolvido pelos nossos técnicos chamado Database Management AjpdSoft (grátis com o código fonte incluído), mas usamos esse utilitário que inclui o Oracle
chamado SQL * Plus . Em qualquer um deles execute a seguinte instrução SQL para criar o DB-LINK:
CREATE DATABASE conexion_oracle_access LIGAÇÃO
usando 'conexion_oracle_access'
Onde:
o "Conexion_oracle_access" (a primeira linha): é o nome que vai lhe dar o link, que depois usa para acessar tabelas do Access da Oracle, com a estrutura: nombre_tabla_access @
nombre_dblink, no exemplo seria:
select * from contas @ conexion_oracle_access
o "Conexion_oracle_access" (segunda linha): é o nome que demos no arquivo tnsnames.ora para link para acessar.
A consulta SQL em execução:

Oracle vai testar a ligação com nosso banco de dados Microsoft Access ( ajpdsoft_access.mdb ). Primeiro executar a consulta SQL teste genérico DB-LINK:
select * from dual @ conexion_oracle_access
E, finalmente, vamos ter um teste real. Para fazer isso, a partir do aplicativo que usamos para conectar ao Oracle (por exemplo, banco de dados da Administração AjpdSoft ), executa uma consulta SQL que vai
trazer de volta o conteúdo da tabela criada no Access (no nosso caso "contas"):
select * from contas @ conexion_oracle_access

Artigos Relacionados