今天做了这么个操作:
TABLE1是用户A的,我以用户B登陆后删了这个表,新建这个表,
结果告诉我执行不成功,
我才发现table1的OWNER是用户A,
我再以用户A登陆后,执行select * from table1时,告诉我:ora-01775,同义词的循环链.我执行
select * from all_synonyms d where d.table_owner = 'B' AND D.SYNONYM_NAME = 'TABLE1'
后,发现有一条记录,
而这儿的table_owner原来是B……我现在怎么操作,才能把table_owner由B改成A,才能消除ORA-01775,同义词的循环链 这个错误呀?HELP ME……

解决方案 »

  1.   

    赫赫,有意思的问题。想知道你到底怎么操作的呢。
    B用户怎么删除A的TABLE1的,又怎么建立这个表的。
    中途有没有建立同义词。你都说清楚呀。赫赫。select   *   from   all_synonyms   d   where   d.table_owner   =   'B'   AND   D.SYNONYM_NAME   =   'TABLE1' 
    只能说明,你的什么用户建立了一个叫做TABLE1的同义词,这个同义词关系到B用户的什么上面。
    all_synonyms里面的table_owner是B,TABLE_NAME呢?OWNER又是什么呢?想消除这个错误很简单呀。
    假如你的这个表最终只是想建立在用户A上面,就先删除B用户的同义词,然后建立用户A的表table1,最后建立用户B的同义词。因为,你的用户B本来有一个叫做table1的同义词,所以你不能在用户B下面建立同名字的表。
    你有权限的话,可以直接建立到A用户下面去。
    这样应该没有问题了。
      

  2.   

    以用户B登陆,
    drop   public synonym table1;再看一下,
    select   *   from   all_synonyms   d   where   d.table_owner   =   'B'   AND   D.SYNONYM_NAME   =   'TABLE1' 这个里面应该没有记录了。 
      

  3.   

    LZ描述的不完整吧。
    你用B去drop A用户的Table1,Table1的Owner怎么可能变为B?
      

  4.   

    我也遇到了这个问题,SOS!!  
    ora-01775,同义词的循环链
      

  5.   

    没有办法,我只能在B用户下,重新建了个相同的TABLE1 勉强可以用了.没有报错了.
      

  6.   

    我也遇到了这个问题,ora-01775 同义词的循环链