This is a pretty silly one, but I need help.
I have a table owned by mydbowner. It is named mydbowner.mytable. I tried to make a public synonym by issuing the command:
CREATE OR REPLACE PUBLIC SYNONYM mytable FOR mydbowner.mytable;
When I do this, and I query the table I get:
ORA-01775: looping chain of synonyms
How do I make this synonym without having the problem.
I think Justin is on the right track. What I think it actually means is that mydbowner.mytable doesn’t exist.
Here’s an example:
I think what’s happening is that Oracle tries to resolve mytable, there is no mytable in mbobak schema, so it looks for it in PUBLIC, it finds it, and sees that it points to mbobak.mytable. But, mbobak.mytable doesn’t exist, so, it looks for mytable in PUBLIC, and there’s the loop.
And in fact, if you create mytable, the error goes away:
Yes, I realize that doesn’t really entirely make sense, as, once the public synonym resolved to mbobak.mytable, and that’s not found, it seems to me, it should return an error ORA-942 “table or view does not exist”, which makes far more sense to me.
But, this does seem to be how it works.
QED
Hope that helps.