【SYNONYM】使用同名时导致ORA-00980报错原因_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2371 | 回复: 0   主题: 【SYNONYM】使用同名时导致ORA-00980报错原因        下一篇 
tangbao@.@
注册用户
等级:新兵
经验:67
发帖:62
精华:0
注册:2011-7-21
状态:离线
发送短消息息给tangbao@.@ 加好友    发送短消息息给tangbao@.@ 发消息
发表于: IP:您无权察看 2015-4-16 17:31:35 | [全部帖] [楼主帖] 楼主

为便于理解ORA-00980报错的原因,我们通过几种方式来再现这个报错。
1.全新创建sec1和sec2用户用于演示

create user sec1 identified by sec1 default tablespace tbs_sec_d;
grant dba to sec1;
create user sec2 identified by sec2 default tablespace tbs_sec_d;
grant dba to sec2;


2.在目标不存在的情况下同名创建是可以成功的

sec@ora10g> conn sec1/sec1
Connected.
sec1@ora10g> create synonym syn_t for sec2.t;
Synonym created.


注意,此时全新用户sec2中是不存在T这张表的,但是sec1用户下可以完成同名的创建。但是此时该同名是不可以使用的。

3.此时查询同名便会抛出ORA-00980错误

sec1@ora10g> select * from syn_t;
select * from syn_t
*
ERROR at line 1:
ORA-00980: synonym translation is no longer valid


4.验证错误是否得到解决

sec1@ora10g> conn sec2/sec2
Connected.
sec2@ora10g> create table t (x varchar2(10));
Table created.


OK,在目标对象存在的情况下,问题得到解决。

5.当目标表名发生变化时问题重现

sec1@ora10g> conn sec2/sec2
Connected.
sec2@ora10g> alter table t rename to t1;
Table altered.
sec2@ora10g> conn sec1/sec1
Connected.
sec1@ora10g> select * from syn_t;
select * from syn_t
*
ERROR at line 1:
ORA-00980: synonym translation is no longer valid


这也是显然的。总之,当同名指向的目标对象不存在的时,查询同名是便会抛出ORA-00980错误。

6.有关ORA-00980报错信息的原因和处理方法参考如下

Error:  ORA 980
Text:   synonym translation is no longer valid
-------------------------------------------------------------------------------
Cause:  The synonym used is based on a table, view, or synonym that no longer
exists.
Action: Replace the synonym with the name of the object it references or re-
create the synonym so that it refers to a valid table, view, or synonym.


7.小结

使用同名时导致ORA-00980报错原因基本上是由于同名指向的目标对象不存在的时发生的。在知道问题原因后,问题处理将会是比较顺畅的。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论