ORA-00980与PL/SQL程序编译出错
生活随笔
收集整理的這篇文章主要介紹了
ORA-00980与PL/SQL程序编译出错
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? 今天碰到一個有意思的問題。
??? 為了降低統(tǒng)計分析數(shù)據(jù)庫的計算和磁盤空間壓力。我們使用了將遠程數(shù)據(jù)庫中數(shù)據(jù)通過DBLINK和SYNONYM的形式來緩解當(dāng)前統(tǒng)計數(shù)據(jù)庫所面臨的問題。工作實施的比較順利。但是統(tǒng)計人員發(fā)現(xiàn)有幾個執(zhí)行統(tǒng)計的PL/SQL過程和包(PACKAGE)失效。
??? 趕快查看失效的數(shù)據(jù)庫對象,發(fā)現(xiàn)都是報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和源數(shù)據(jù)庫中沒有出錯的表、視圖或者同義詞呀。
??? 奇怪?
??? 再分析下源數(shù)據(jù)庫中的這些對象,確實發(fā)現(xiàn)了一個問題:
??? 就是在目標數(shù)據(jù)庫上創(chuàng)建SYNONYM的“基礎(chǔ)”不是真正意義上的表、視圖或者是SYNONYM。而是一些物化視圖(MATERIALIZED VIEW)!
??? 趕快重新修改:
??? 試著按照一個物化視圖(還好是簡單的只讀物化視圖!)的規(guī)則新建一個SYNONYM,然后在目標數(shù)據(jù)庫上利用該新建的SYNONYM為基礎(chǔ)創(chuàng)建一個基于DBLINK的SYNONYM(這話說著確實比較繞嘴)。然后編譯某個相關(guān)聯(lián)的PL/SQL程序,編譯通過。
??? 奇怪,這難道是ORACLE的一個BUG?
??? 探索中 -:)
? -------------------
? 目標數(shù)據(jù)庫:9.2.0.4
? 源數(shù)據(jù)庫:? 10.2.0.1
? 補:
??? 為了降低統(tǒng)計分析數(shù)據(jù)庫的計算和磁盤空間壓力。我們使用了將遠程數(shù)據(jù)庫中數(shù)據(jù)通過DBLINK和SYNONYM的形式來緩解當(dāng)前統(tǒng)計數(shù)據(jù)庫所面臨的問題。工作實施的比較順利。但是統(tǒng)計人員發(fā)現(xiàn)有幾個執(zhí)行統(tǒng)計的PL/SQL過程和包(PACKAGE)失效。
??? 趕快查看失效的數(shù)據(jù)庫對象,發(fā)現(xiàn)都是報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和源數(shù)據(jù)庫中沒有出錯的表、視圖或者同義詞呀。
??? 奇怪?
??? 再分析下源數(shù)據(jù)庫中的這些對象,確實發(fā)現(xiàn)了一個問題:
??? 就是在目標數(shù)據(jù)庫上創(chuàng)建SYNONYM的“基礎(chǔ)”不是真正意義上的表、視圖或者是SYNONYM。而是一些物化視圖(MATERIALIZED VIEW)!
??? 趕快重新修改:
??? 試著按照一個物化視圖(還好是簡單的只讀物化視圖!)的規(guī)則新建一個SYNONYM,然后在目標數(shù)據(jù)庫上利用該新建的SYNONYM為基礎(chǔ)創(chuàng)建一個基于DBLINK的SYNONYM(這話說著確實比較繞嘴)。然后編譯某個相關(guān)聯(lián)的PL/SQL程序,編譯通過。
??? 奇怪,這難道是ORACLE的一個BUG?
??? 探索中 -:)
? -------------------
? 目標數(shù)據(jù)庫:9.2.0.4
? 源數(shù)據(jù)庫:? 10.2.0.1
? 補:
? 后來通過使用動態(tài)SQL的方法將無法編譯的問題進行了解決。
本文轉(zhuǎn)自Be the miracle!博客51CTO博客,原文鏈接http://blog.51cto.com/miracle/60615如需轉(zhuǎn)載請自行聯(lián)系原作者
Larry.Yue
總結(jié)
以上是生活随笔為你收集整理的ORA-00980与PL/SQL程序编译出错的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java去除不为null,java –
- 下一篇: mysql5.6.25密码_安装压缩版m