Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, santhoshreddy.

Asked: November 23, 2016 - 3:12 pm UTC

Last updated: November 26, 2016 - 3:21 am UTC

Version: 11g

Viewed 1000+ times

You Asked

Hi,

I installed 11g(enterprise) on my personal laptop.I Droped the Metadata DBA_OBJECTS,DBA_USERS(my intention is to know DB fuctioning),my Data base working properly.But When I execute Select query(SELECT * FROM dba_objects) getting *ora-10775 looping chain of synonym error*,but it has to show *ora 00942 table or view does not exist* because i dropped those Dictionary Tables.But Why its showing That Error ora 10775?


Thank you.

and Connor said...

Yeah you should never, ever, ever drop an object owned by SYS or SYSTEM (unless instructed to by Support).

These kinds of PUBLIC synonyms are special, eg


SQL>
SQL> conn / as sysdba
Connected.


SQL> create view tmp_view as select * from sys.tab$;

View created.


SQL> grant select on tmp_view to SELECT_CATALOG_ROLE;

Grant succeeded.


SQL> create public synonym tmp_view for tmp_view;

Synonym created.


SQL> conn mcdonac/blah
Connected.


SQL> select count(*) from tmp_view;

  COUNT(*)
----------
      3167

1 row selected.


SQL> conn / as sysdba
Connected.


SQL> drop view tmp_view;

View dropped.


SQL> conn mcdonac/blah
Connected.


SQL> select count(*) from tmp_view;
select count(*) from tmp_view
                     *
ERROR at line 1:
ORA-01775: looping chain of synonyms



SQL> conn / as sysdba
Connected.


SQL> drop public synonym tmp_view;

Synonym dropped.


SQL> create view tmp_view as select * from sys.tab$;

View created.


SQL> grant select on tmp_view to SELECT_CATALOG_ROLE;

Grant succeeded.


SQL> create synonym mcdonac.tmp_view for tmp_view;

Synonym created.


SQL> conn mcdonac/blah
Connected.


SQL> select count(*) from tmp_view;

  COUNT(*)
----------
      3167

1 row selected.


SQL>

SQL> conn / as sysdba
Connected.


SQL> drop view tmp_view;

View dropped.


SQL>

SQL> conn mcdonac/blah
Connected.


SQL> select count(*) from tmp_view;
select count(*) from tmp_view
                     *
ERROR at line 1:
ORA-00980: synonym translation is no longer valid



SQL>

SQL>


Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

santhoshreddy podduturi, November 25, 2016 - 2:10 am UTC

So for Only PUBLIC SYNONYMS rather than getting ORA 00908 we Get ORA-01775 and For Private we get ora 00908
Am i Correct?
Connor McDonald
November 26, 2016 - 3:21 am UTC

yes