segunda-feira, 17 de agosto de 2009

ORA-01775 Looping Chain of Synonyms

Olá pessoal, como vão?

Estou de volta para dar uma dica com relação a um erro bem chato que peguei essa semana, algo inusitado pois nunca me ocorreu.

Ao recriar alguns sinonimos para alguns objetos de banco, me deparei com a seguinte mensagem de erro :

ERRO na linha 1:
ORA-01775: looping chain of synonyms

Foi ai então que começei a procurar o que significaria este erro, e por consequencia achei a seguinte definição:

ORA-01775: looping chain of synonyms
Cause: Through a series of CREATE synonym statements, a synonym was defined that referred to itself. For example, the following definitions are circular:


CREATE SYNONYM s1 for s2 CREATE SYNONYM s2 for s3 CREATE SYNONYM s3 for s1

Action: Change one synonym definition so that it applies to a base table or view and retry the operation

Com essas informações nas mãos, me coloquei a procurar onde eu havia me equivocado na criação dos sinonimos que pudesse ter gerado este erro em meu Banco de Dados, e descobri que eu tinha um sinonimo criado no owner A que apontava para um objeto no owner B que tinha uma referencia a um owner C (rss!!!) , cnfusões a parte, o que foi necessário fazer foi :

1. Identificar o Synonym envolvido ( fiz isso através de um trace gerado na sessão em que o user acessava a aplicação)
2. Remover o Synonym.
3. Recriar o Synonym e dar permissões aos demais users de aplicação.

Outras incidências que podem ocorrer esse erro por exemplo, é quando se tem um Synonym que aponte para uma tabela que não existe, veja:

OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME
------ ------------------------ ------------ -----------------------
PUBLIC TMP_PREVIEW_LIQUIDACOES DPD TMP_PREVIEW_LIQUIDACOES



select * from TMP_PREVIEW_LIQUIDACOES
*
ERRO na linha 1:
ORA-01775: looping chain of synonyms

select * from dpd.TMP_PREVIEW_LIQUIDACOES
*
ERRO na linha 1:
ORA-00942: table or view does not exist

Portanto, prestem muita atenção quando estiverem criando seus objetos para que não caiam nessa pegadinha de mau gosto.

Abraço á todos!!!!

9 comentários:

  1. David, estou com um erro desse e não sei como proceder, pode me ajudar?

    ResponderExcluir
  2. Claro que sim Erik, mandei dois emails para você no GMAIL.

    Me responda que iremos tentar solucionar seu problema.

    Abraço.

    ResponderExcluir
  3. Achei David, rsrsrsrs...
    Realmente vc me ajudou muito a solucionar a minha situação aqui. Muito grato pela força e eu aprendi muito com a atitude que vc me passou.

    Abraços

    ResponderExcluir
  4. David, também estou com um erro desse, pode me passar as dicas que passou para o Erik?

    ResponderExcluir
  5. Claro que sim Vinicius, podemos ver sim. Me passe seu email para que possamos manter um contato.
    Abraço!!!

    ResponderExcluir
  6. David, obrigado pela sua disposição em ajudar. Estou com este mesmo problema e não sei como proceder. É possível me ajudar? Só uma sugestão: podes colocar como realizar o trace, por exemplo, aqui nos comentários - creio que assim todos saberiam que passos seguir.
    Uma vez mais, OBRIGADO e Deus o abençoe, sempre!

    ResponderExcluir
  7. Celso, bom dia.

    Primeiramente obrigado pela visita no BLOG. Bem conforme eu escrevi há casos em que se faz necessário um TRACE para identificação, porém ha variações deste mesmo erro que não precisam do mesmo, verifique junto ao seu ALERT.LOG do banco de dados se ele não apontou para algum arquivo de trace já gerado pelo próprio database.

    Caso queira me envie por email seu alert log para eu analisar e ver se consigo lhe ajudar.

    drb.ricardo@gmail.com

    Abraço.

    ResponderExcluir
  8. David, boa noite estou com esse mesmo problema apos criar uma base para teste ele apresenta esse erro de synonym vc poderia me ajudar a encontrar essa correcao?

    dannyalisson@yahoo.com.br

    Danny

    ResponderExcluir
  9. David, estou com esse mesmo problema apos criar uma base para teste vc poderia me ajudar nessa resolucao desse problema?

    dannyalisson@yahoo.com.br

    Danny

    ResponderExcluir

Para aqueles que apreciaram o Post, comentem, deixem suas opiniões e criticas.