ORA-12154
Erro onde não há um Listener para conexão, porém, ele é emitido dentro do banco de dados Oracle, por isso o motivo do ORA no início, e esse erro é quando se está utilizando um DBLINK para um determinado banco de dados e o ALIAS utilizado no DBLINK não corresponde ao banco de dados. Exemplo:
SQL> select count(*) from NOTAS_FISCAIS@RANET_SP.WORLD;
select count(*) from NOTAS_FISCAIS@RANET_SP.WORLD
*
ERRO na linha 1:
ORA-12154: TNS:could not resolve service name
Solução
A solução para esse tipo de problema é igual ao do TNS-12154, porém necessita de mais detalhes, como:
Verificar qual o alias que o DBLINK está utilizando para realizar a comunicação, fazendo o SELECT abaixo:
SQL> select owner, db_link, username, host from dba_db_links;
OWNER DB_LINK USERNAME HOST
---------- --------------- ------------------------------ ---------------
PUBLIC RANET_SP.WORLD dbara RANET_RO
1 linha selecionada
A coluna HOST fornece o nome do alias que será utilizado para realizar a comunicação com outro banco de dados. Esse alias é o mesmo encontrado no arquivo tnsnames.ora, então, para resolver o problema, basta no arquivo de tnsnames colocar um alias chamado RANET_RO para o hostname, porta e SID corretos, deste modo o DBLINK volta a funcionar. Existem outras coisas que devemos prestar atenção como mencionado nos erros TNS acima, como:
--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs
Felipe.
Em 12/08/11, Everton Lucas<evtl...@gmail.com> escreveu:
>> *ORA-12154*
>>>
>>> Erro onde não há um Listener para conexão, porém, ele é emitido dentro do
>>> banco de dados Oracle, por isso o motivo do ORA no início, e esse erro é
>>> quando se está utilizando um DBLINK para um determinado banco de dados e
>>> o
>>> ALIAS utilizado no DBLINK não corresponde ao banco de dados. Exemplo:
>>>
>>> SQL> select count(*) from NOTAS_FISCAIS@RANET_SP.WORLD;select count(*)
>>> from NOTAS_FISCAIS@RANET_SP.WORLD
>>> *ERRO na linha 1:
>>> ORA-12154: TNS:could not resolve service name
>>>
>>> *Solução*
>>>
>>> A solução para esse tipo de problema é igual ao do TNS-12154, porém
>>> necessita de mais detalhes, como:
>>>
>>> Verificar qual o alias que o DBLINK está utilizando para realizar a
>>> comunicação, fazendo o SELECT abaixo:
>>>
>>> SQL> select owner, db_link, username, host from dba_db_links;
>>>
>>> OWNER DB_LINK USERNAME HOST
>>> ---------- --------------- ------------------------------ ---------------
>>> PUBLIC RANET_SP.WORLD dbara RANET_RO
>>> 1 linha selecionada
>>>
>>> A coluna HOST fornece o nome do alias que será utilizado para realizar a
>>> comunicação com outro banco de dados. Esse alias é o mesmo encontrado no
>>> arquivo tnsnames.ora, então, para resolver o problema, basta no arquivo
>>> de
>>> tnsnames colocar um alias chamado RANET_RO para o hostname, porta e SID
>>> corretos, deste modo o DBLINK volta a funcionar. Existem outras coisas
>>> que
>>> devemos prestar atenção como mencionado nos erros TNS acima, como:
>>>
>>> 1. Verificar se é necessário utilizar o .WORLD para o domínio global;
>>> 2. Verificar o NAMES.DIRECTORY_PATH e NAME.DEFAULT_DOMAIN do
>>> sqlnet.ora do servidor de banco de dados;
>>> 3. Executar os testes de PING e TNSPING.
OBS: A senha não tem nada a ver com o problema :D
O usuario é : BancoORATestes
Logo, a conexão: BancoORATestes/INTERNACIONAL@XE
Na SQLConnection:
DataBase = XE
Usuario = BancoORATestes
Senha = INTERNACIONAL