暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-00980翻译不再有效

askTom 2016-07-26
480

问题描述

亲爱的先生,

我正在从一个系统导出数据库,然后将其导入另一个系统。导入后,显示错误ORA-00980转换不再有效,我可以看到解决方案,但我的问题是

1) 它与以前的系统配合良好,为什么在导入其显示错误后?
2) 我不想在导入后解决问题,当它引发异常时,我不想让这个问题出现
3) 导入后,我必须再次创建架构和同义词,有没有办法解决它

因此,导入后,它应该可以完美工作而不会引发异常

先生,你能帮我吗?

专家解答

当同义词指向数据库中没有的对象时,会发生ORA-980情况!

例如:

SQL> create table t (
  2    x int
  3  );

Table created.

SQL>
SQL> create synonym s for chris.t;

Synonym created.

SQL>
SQL> select * from s;

no rows selected

SQL>
SQL> drop table t purge;

Table dropped.

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


所以我的猜测是,导入不包括你的同义词的目标。可能是因为它们处于不同的模式!

您可以通过以下查询找到哪些同义词缺少其目标:

select * from user_synonyms s
where  not exists (
  select * from dba_objects d
  where  s.table_owner = d.owner
  and    s.table_name = d.object_name
);

SYNONYM_NAME  TABLE_OWNER  TABLE_NAME  DB_LINK  
S             CHRIS        T 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论