通過sql跟蹤解決ORA-00942錯誤一例

husthxd發表於2004-10-25

通過sql跟蹤解決ORA-00942錯誤一例


本文可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本宣告

http://blog.itpub.net/post/11/3772

通過sql跟蹤解決ORA-00942錯誤一例

 

做完資料庫移植後準備做應用程式的測試,應用程式登陸發現表或檢視不存在的錯誤,該session出錯後即disconnect,不能通過跟蹤session來獲取出錯資訊,應用程式開發商也不會提供原始碼供分析,在這種情況下可以通過用

alter system set sql_trace=true scope=memory;

命令跟蹤整個例項來獲得必要的資訊。設定跟蹤後,重新登陸產生跟蹤檔案,用tkprof分析跟蹤後,發現如下內容:

The following statement encountered a error during parse:

 

select encode from con_sidb_public where username =:1

 

Error encountered: ORA-00942

 

這裡就是出錯的地方,通過查詢資料字典檢視:

select *from dba_objects where object_name = ‘CON_SIDB_PUBLIC’

發現con_sidb_public是一個同義詞,進而查詢

SELECT *FROM dba_synonyms WHERE synonym_name = 'CON_SIDB_PUBLIC'

得到以下內容:

OWNER SYNONYM_NAME   TABLE_OWNER  TABLE_NAME   DB_LINK

PUBLIC       CON_SIDB_PUBLIC SIDB                SYSUSER_SIDBPASSWORD

通過執行以下語句:

create public synonym CON_SIDB_PUBLIC for sidb.SYSUSER_SIDBPASSWOR;

得以解決問題。

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

相關文章