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