ORA-00942錯誤分析

xinxinhg發表於2004-11-10
http://blog.itpub.net/post/11/3772 本文作者:husthxd [@more@]

本文作者:husthxd

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


透過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/166555/viewspace-780342/,如需轉載,請註明出處,否則將追究法律責任。

相關文章