今天做了这么个操作:
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……
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……
解决方案 »
- oracle中这样怎么做?请大侠们帮忙!
- Toad for oracle 如何显示多个结果集
- 问个简单的Oracle库连接问题,大家帮帮忙哈
- 索引不能扩展(index can not extend。。。),怎么办?
- 分组排序问题?
- oracle数据库的恢复问题,高手指教
- 求一个sql语句~在线等~~非常急!
- 在使用UTL_FILE包读写文件的时候,open的时候是不是必须用directory而不能用绝对路径。
- 求一条select语句,希望性能最优
- SQL SERVER数据表通过kettle迁移到oracle12C的时候oracle日期类型出现乱码?号如何解决?
- oracle文件操作
- ORA-01401: 插入的值对于列过大
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用户下面去。
这样应该没有问题了。
drop public synonym table1;再看一下,
select * from all_synonyms d where d.table_owner = 'B' AND D.SYNONYM_NAME = 'TABLE1' 这个里面应该没有记录了。
你用B去drop A用户的Table1,Table1的Owner怎么可能变为B?
ora-01775,同义词的循环链