做断桥铝门窗网站,wordpress生成静态,出国劳务,购买网站外链今天碰到一个有意思的问题。为了降低统计分析数据库的计算和磁盘空间压力。我们使用了将远程数据库中数据通过DBLINK和SYNONYM的形式来缓解当前统计数据库所面临的问题。工作实施的比较顺利。但是统计人员发现有几个执行统计的PL/SQL过程和包#xff08;PACKAGE#xff09;失… 今天碰到一个有意思的问题。 为了降低统计分析数据库的计算和磁盘空间压力。我们使用了将远程数据库中数据通过DBLINK和SYNONYM的形式来缓解当前统计数据库所面临的问题。工作实施的比较顺利。但是统计人员发现有几个执行统计的PL/SQL过程和包PACKAGE失效。 赶快查看失效的数据库对象发现都是报ORA-00980 看看出错原因 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. 可是我的DBLINK和源数据库中没有出错的表、视图或者同义词呀。 奇怪 再分析下源数据库中的这些对象确实发现了一个问题 就是在目标数据库上创建SYNONYM的“基础”不是真正意义上的表、视图或者是SYNONYM。而是一些物化视图MATERIALIZED VIEW 赶快重新修改 试着按照一个物化视图还好是简单的只读物化视图的规则新建一个SYNONYM然后在目标数据库上利用该新建的SYNONYM为基础创建一个基于DBLINK的SYNONYM这话说着确实比较绕嘴。然后编译某个相关联的PL/SQL程序编译通过。 奇怪这难道是ORACLE的一个BUG 探索中 -:) ------------------- 目标数据库9.2.0.4 源数据库 10.2.0.1 补 后来通过使用动态SQL的方法将无法编译的问题进行了解决。 本文转自Be the miracle!博客51CTO博客原文链接http://blog.51cto.com/miracle/60615如需转载请自行联系原作者 Larry.Yue