設定autotrace的報錯問題解決

charsi發表於2010-11-16

我們在Oracle session中設定autotrace的時候,經常會遇到下列的問題:


SQL> set autotrace on
SP2-0613: 無法驗證 PLAN_TABLE 格式或實體
SP2-0611: 啟用EXPLAIN報告時出錯

這是由於這個使用者下沒有PLAN_TABLE這個表的原因,可以執行ORACLE的sql來建立該表
ORACLE給的SQL在$ORACLE_HOME/rdbms/admin/utlxplan.sql中,執行該校本就可以了.

比如我的$ORACLE_HOME為C:oracleora92
那麼我就執行下面的語句然後就可以了.
SQL> @C:oracleora92rdbmsadminutlxplan.sql

表已建立。

SQL>


表已經建立,那麼有時候還會遇到許可權的問題,提示錯誤資訊如下:

SQL> set autotrace on
SP2-0618: 無法找到會話識別符號。啟用檢查 PLUSTRACE 角色
SP2-0611: 啟用STATISTICS報告時出錯
SQL>
SQL>

這是因為使用者起用autotrace之後,需要訪問一些系統字典和系統表,而使用者沒有許可權訪問那些表,所以會報許可權的錯誤,可以給使用者賦予下面的許可權,然後使用者重新登陸下就可以

了.

SQL> grant select any dictionary to charsi;

授權成功。

SQL> grant select any table to charsi;

授權成功。

SQL>


然後使用者再執行就可以了.

而具體使用者在設定autotrace的時候會訪問和修改哪些表,可以通過對使用者的session進行跟蹤即可以進行研究.
事實上,在使用者開啟trace之後,系統會同時產生另外一個session專門進行跟蹤使用者當前的session,

[@more@]

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

相關文章