淺談oracle,db2 錯誤工具使用

學習和使用數據庫過程中,數據庫經常會拋出一個錯誤碼及簡短解釋。

如果知道這些錯誤代碼的詳細解釋,對於我們快速定位問題,解決問題有極大的幫助。

下面,淺談兩個重量級數據庫oracle和db2如何查看錯誤。

oracle錯誤工具oerr

適用平臺:unix,linux;

windows平臺由於自身腳本功能不夠強大,oracle公司未開發該平臺的錯誤工具。不過個人認爲,其實還是oracle公司不想開發。因爲,國外的oracle愛好者們已經開發出了適用於windows平臺的oerr工具。

命令格式:oerr ora 錯誤編號
使用例子:
例1
[oracle@shtdtest oracle]$ oerr ora 01632
01632, 00000, "max # extents (%s) reached in index %s.%s"
// *Cause:  An index tried to extend past maxextents
// *Action: If maxextents is less than the system max, raise it. Otherwise,
//          you must recreate with larger initial, next or pctincrease params.
[oracle@shtdtest oracle]$


db2 錯誤工具:CLP內置功能

命令格式:db2   ? [phrase | message | sqlstate | class-code]]

適用平臺:unix,linux,windows

DB2 錯誤信息由標識符、簡要說明以及SQLSTATE組成。如下所示:

C:\Program Files\IBM\SQLLIB\BIN>db2 connect to sample user db2admin using 123456
SQL30082N  安全處理失敗,因爲 "24"("USERNAME AND/OR PASSWORD INVALID")。
SQLSTATE=08001

其中SQL30082N  是標識符,SQLSTATE=08001   SQLSTATE 錯誤是DB2系列產品的公共錯誤代碼,剩下的是簡要說明。

標識符中,最後一個字符代表錯誤級別。N表示通知(NOTICIT),C表示嚴重(CRITICAL),同時具有負SQLCODE

W表示一個警告(WARNING),具有正SQLCODE。

查看錯誤解釋可以輸入:  DB2   ?     SQL30082N   或者 DB2 ?  08001


使用例子:

例2

C:\Users\Administrator>db2 get authorizations
SQL2018N  實用程序在試圖驗證用戶的授權標識或數據庫權限時遇到錯誤 "-1024"。
C:\Users\Administrator>db2 ? sql2018N
SQL2018N  實用程序在試圖驗證用戶的授權標識或數據庫權限時遇到錯誤
      "<錯誤>"。
說明:
用戶試圖執行一個實用程序,但發生下列其中一項:
*  用戶授權標識無效。
*  試圖訪問用戶的數據庫權限時出錯。

實用程序停止了處理過程。
用戶響應:
查看消息中的錯誤號以瞭解更多信息。進行更改並重新提交該命令。
例3
C:\Users\Administrator>db2 ? sql1024
SQL1024N  不存在數據庫連接。
說明:
沒有與數據庫連接。除非先前執行了 SQL CONNECT,否則不能處理其他 SQL。
無法處理該命令。
用戶響應:
如果與數據庫斷開連接時發生錯誤,那麼繼續處理。如果在另一條 SQL 語句
生錯誤,那麼發出 SQL CONNECT 語句,並重新提交該命令或語句。

  sqlcode:-1024

  sqlstate:08003


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章