【SQL*Plus】11g版本對 SQL*Plus錯誤日誌的記錄功能——errorlogging引數
Oracle 11g中的errorlogging引數增強了錯誤資訊的記錄功能,可以做到錯誤資訊“落地”的功能。
1.Oracle版本資訊
sys@11gR2> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
2.SQL*Plus中errorlogging引數的預設值
sec@11gR2> show errorlogging
errorlogging is OFF
3.修改errorlogging選項為ON開啟錯誤日誌記錄功能
sec@11gR2> set errorlogging on
sec@11gR2> show errorlogging
errorlogging is ON TABLE SEC.SPERRORLOG
注意再次提示的內容,“set errorlogging on”命令將自動在當前使用者下建立表SPERRORLOG,用於記錄錯誤資訊。
sec@11gR2> desc SPERRORLOG
Name Null? Type
------------- -------- -------------------
USERNAME VARCHAR2(256)
TIMESTAMP TIMESTAMP(6)
SCRIPT VARCHAR2(1024)
IDENTIFIER VARCHAR2(256)
MESSAGE CLOB
STATEMENT CLOB
每個欄位的定義描述如下:
USERNAME -- 使用者名稱
TIMESTAMP -- 錯誤發生的時間
SCRIPT -- 指令碼名稱
IDENTIFIER-- 識別符號
MESSAGE -- 記錄類似ORA、PLA或SP2錯誤資訊
STATEMENT -- 錯誤資訊描述
4.模擬SQL*Plus中的錯誤
sec@11gR2> show secooler
SP2-0158: unknown SHOW option "secooler"
sec@11gR2> help secooler
SP2-0172: No HELP matching this topic was found.
sec@11gR2> seeeeelect from tab;
SP2-0734: unknown command beginning "seeeeelect..." - rest of line ignored.
sec@11gR2> create table t as as select * from user_objects;
create table t as as select * from user_objects
*
ERROR at line 1:
ORA-00928: missing SELECT keyword
sec@11gR2>
5.透過查詢SPERRORLOG表獲得所有錯誤資訊
sec@11gR2> col USERNAME for a8
sec@11gR2> col TIMESTAMP for a14
sec@11gR2> col MESSAGE for a20
sec@11gR2> col STATEMENT for a20
sec@11gR2> select USERNAME,TIMESTAMP,MESSAGE,STATEMENT from SPERRORLOG;
USERNAME TIMESTAMP MESSAGE STATEMENT
-------- -------------- -------------------- --------------------
SEC 06-MAY-10 03.5 SP2-0158: unknown SH show secooler
1.49.000000 PM OW option "secooler"
SEC 06-MAY-10 03.5 SP2-0172: No HELP ma help secooler
1.51.000000 PM tching this topic wa
s found.
SEC 06-MAY-10 03.5 SP2-0734: unknown co seeeeelect from tab;
1.54.000000 PM mmand beginning "see
eeelect..." - rest o
f line ignored.
SEC 06-MAY-10 03.5 ORA-00928: missing S create table t as as
1.55.000000 PM ELECT keyword select * from user_
objects
可見,曾經發生的錯誤資訊一覽無餘。
6.使用commit命令可以永久記錄這些報錯資訊
若想將報錯資訊永久的保留下來,只需要在session中輸入commit命令便可。
7.Oracle 11gR2官方文件中參考資訊
8.小結
透過引數errorlogging的設定,可以非常便捷的開啟錯誤資訊記錄功能。當在SQL*Plus中除錯指令碼或SQL語句時,該功能起到非常重要的作用。
另外,透過這個錯誤記錄功能,也可以建立一個誤操作自檢庫,以便自省吾身。
Good luck.
secooler
10.05.06
-- The End --
1.Oracle版本資訊
sys@11gR2> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
2.SQL*Plus中errorlogging引數的預設值
sec@11gR2> show errorlogging
errorlogging is OFF
3.修改errorlogging選項為ON開啟錯誤日誌記錄功能
sec@11gR2> set errorlogging on
sec@11gR2> show errorlogging
errorlogging is ON TABLE SEC.SPERRORLOG
注意再次提示的內容,“set errorlogging on”命令將自動在當前使用者下建立表SPERRORLOG,用於記錄錯誤資訊。
sec@11gR2> desc SPERRORLOG
Name Null? Type
------------- -------- -------------------
USERNAME VARCHAR2(256)
TIMESTAMP TIMESTAMP(6)
SCRIPT VARCHAR2(1024)
IDENTIFIER VARCHAR2(256)
MESSAGE CLOB
STATEMENT CLOB
每個欄位的定義描述如下:
USERNAME -- 使用者名稱
TIMESTAMP -- 錯誤發生的時間
SCRIPT -- 指令碼名稱
IDENTIFIER-- 識別符號
MESSAGE -- 記錄類似ORA、PLA或SP2錯誤資訊
STATEMENT -- 錯誤資訊描述
4.模擬SQL*Plus中的錯誤
sec@11gR2> show secooler
SP2-0158: unknown SHOW option "secooler"
sec@11gR2> help secooler
SP2-0172: No HELP matching this topic was found.
sec@11gR2> seeeeelect from tab;
SP2-0734: unknown command beginning "seeeeelect..." - rest of line ignored.
sec@11gR2> create table t as as select * from user_objects;
create table t as as select * from user_objects
*
ERROR at line 1:
ORA-00928: missing SELECT keyword
sec@11gR2>
5.透過查詢SPERRORLOG表獲得所有錯誤資訊
sec@11gR2> col USERNAME for a8
sec@11gR2> col TIMESTAMP for a14
sec@11gR2> col MESSAGE for a20
sec@11gR2> col STATEMENT for a20
sec@11gR2> select USERNAME,TIMESTAMP,MESSAGE,STATEMENT from SPERRORLOG;
USERNAME TIMESTAMP MESSAGE STATEMENT
-------- -------------- -------------------- --------------------
SEC 06-MAY-10 03.5 SP2-0158: unknown SH show secooler
1.49.000000 PM OW option "secooler"
SEC 06-MAY-10 03.5 SP2-0172: No HELP ma help secooler
1.51.000000 PM tching this topic wa
s found.
SEC 06-MAY-10 03.5 SP2-0734: unknown co seeeeelect from tab;
1.54.000000 PM mmand beginning "see
eeelect..." - rest o
f line ignored.
SEC 06-MAY-10 03.5 ORA-00928: missing S create table t as as
1.55.000000 PM ELECT keyword select * from user_
objects
可見,曾經發生的錯誤資訊一覽無餘。
6.使用commit命令可以永久記錄這些報錯資訊
若想將報錯資訊永久的保留下來,只需要在session中輸入commit命令便可。
7.Oracle 11gR2官方文件中參考資訊
8.小結
透過引數errorlogging的設定,可以非常便捷的開啟錯誤資訊記錄功能。當在SQL*Plus中除錯指令碼或SQL語句時,該功能起到非常重要的作用。
另外,透過這個錯誤記錄功能,也可以建立一個誤操作自檢庫,以便自省吾身。
Good luck.
secooler
10.05.06
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2121056/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【SQL*Plus】使用11g SQL*Plus的errorlogging選項記錄session級別的錯誤SQLErrorSession
- mybatis-plus匯入sql日誌MyBatisSQL
- SQL*Plus Set引數詳解SQL
- SQL Server 錯誤日誌SQLServer
- Laravel sql 日誌記錄LaravelSQL
- 【rlwrap】Linux上實現Windows的SQL*Plus儲存SQL歷史記錄功能LinuxWindowsSQL
- oracle實驗記錄 (SQL*PLUS 命令操作)OracleSQL
- Oracle 11g系列:SQL Plus與PL/SQLOracleSQL
- Linux上實現Windows的SQL*Plus儲存SQL歷史記錄功能---rlwrap(轉)LinuxWindowsSQL
- SQL Server ErrorLog 錯誤日誌SQLServerError
- 記錄 sql 查詢日誌SQL
- SQL*PLUS 環境變數SQL變數
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- 【SQL*Plus】直接X掉視窗對SQL*Plus中的操作結果的影響SQL
- 登入Oracle錯誤提示Error 6 initializing SQL*PlusOracleErrorSQL
- 【SQL*Plus】11g中使用SQL*Plus的-S選項依然可以看到“Enter password:”問題SQL
- solaris下配置使用SQL*Plus歷史命令記錄SQL
- 預定義的SQL*Plus變數SQL變數
- 使用SQL*PlusSQL
- 【SQL*Plus】使用Oracle 11gR2的EXITCOMMIT引數控制在SQL*Plus中exit時commit的行為SQLOracleMIT
- 常用的sql*plus命令:SQL
- 【SQL*Plus】使用SQL*Plus的Preliminary方式連線資料庫SQL資料庫
- 【SQL*Plus】使用SQL*Plus的-S選項精簡輸出資訊SQL
- Mybatis-plus核心功能-自定義SQLMyBatisSQL
- 【sqlplus】SQL*Plus命令使用大全SQL
- SQL*Plus安全(一)SQL
- SQL*Plus安全(二)SQL
- SQL*PLUS安全(三)SQL
- SQL*PLUS安全(四)SQL
- SQL*Plus Substitution VariablesSQL
- set autotrace in SQL*PlusSQL
- sql*plus入門SQL
- 如何列印完整的MYSQL帶引數SQL日誌資訊MySql
- sql*plus會話環境相關的引數設定檔案SQL會話
- 【SQL*Plus】處理 SQL*Plus的標頭無法顯示問題SQL
- log4jdbc記錄全部SQL日誌JDBCSQL
- 使用sql*plus編輯sql文字SQL
- ORACLE SQL and SQL*PLUS (strong recommend)OracleSQL