檢視執行計劃出現ORA-22992錯誤

zhang41082發表於2019-07-05

檢視一個sql的執行計劃,結果出現ORA-22992提示,知道這個提示是遠端DB LINK包含LOB欄位,所以不能在select中被顯示,但是仔細核對後,發現這個sql使用的三個表的連線都是本地表,而且這三個表根本不包含LOB欄位,見鬼!

[@more@]

首先懷疑是工具的問題,發生問題時是使用PL/SQL DEVELOPER來執行的,登陸伺服器,直接使用SET AUTOTRACE TRACEONLY來檢視執行計劃,結果統計資訊能出來,計劃還是出不來,提示:
Execution Plan
----------------------------------------------------------
ERROR: an uncaught error in function display has happened; please contact Oracle support
Please provide also a DMP file of the used plan table PLAN_TABLE
ORA-22992: cannot use LOB locators selected from remote tables

於是又懷疑到是否是SQL_PLAN出現問題,於是按下面步驟把SQL_PLAN重建:
@$ORACLE_HOME/rdbms/admin/utlxplan
create public synonym plan_table for plan_table;
grant all on plan_table to public ;
@$ORACLE_HOME/sqlplus/admin/plustrce
grant plustrace to public;

問題依舊,想來想去,既然oracle說是LOB欄位在DB LINK上有問題,那隻能按照這個提示去找。於是把所有同義詞全部找出來,把透過DB LINK建立的同義詞的欄位全部拎出來,然後確定哪些遠端表包含LOB欄位,然後把這些表的同義詞刪除,問題小時!!!

雖然問題解決了,可以真搞不懂,ORACLE為啥在我根本沒有用到這個LOB欄位的時候會出現這個問題呢?難道檢視執行計劃會用到這些咚咚?還是ORACLE的BUG?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-981498/,如需轉載,請註明出處,否則將追究法律責任。

相關文章