Oracle 11g sql plus 错误记录功能
Jun 07, 2016 pm 04:46 PMoracle 11g以前,可以通过show errors命令查看执行pl/sql语句时发生的错误,但不能记录这些错误,现在,可以通过sql plus命令set
Oracle 11g以前,,可以通过show errors命令查看执行pl/sql语句时发生的错误,但不能记录这些错误,现在,可以通过sql plus命令set errorlogging on,将sql或者pl/sql语句导致的所以错误写入名为sperrorlog的表中。具体见如下测试:
C:\>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期六 3月 16 08:51:43 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger
已连接。
--检查错误日志记录功能是否开启
SQL> show errorlogging
errorlogging is OFF
SQL> set errorlogging on;
SQL> show errorlogging
errorlogging is ON TABLE SCOTT.SPERRORLOG
--建表及insert操作测试
SQL> create table t(id number,name varchar2(2O)
2 ;
create table t(id number,name varchar2(2O)
*
第 1 行出现错误:
ORA-00907: 缺失右括号
SQL> create table t(id number,name varchar2(2O));
create table t(id number,name varchar2(2O))
*
第 1 行出现错误:
ORA-00907: 缺失右括号
SQL> create table t(id number,name varchar2(20));
表已创建。
SQL> alter table t add constraint pk_t primary key (id);
表已更改。
SQL> insert into t values(1,'heloong');
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into t values(1,'heloong');
insert into t values(1,'heloong')
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (SCOTT.PK_T)
SQL> insert into t values(2,'heloong');
已创建 1 行。
SQL> commit;
提交完成。
SQL> set linesize 200
SQL> desc sperrorlog;
名称
是否为空? 类型
-------------------------------------------------------------------------------
---------------------------------- -------- ------------------------------------
----------------------------------------
USERNAME --用户名
VARCHAR2(256)
TIMESTAMP --错误时间
TIMESTAMP(6)
SCRIPT. --脚本名(如果有的话)
VARCHAR2(1024)
IDENTIFIER --用户定义的标识
VARCHAR2(256)
MESSAGE --错误信息
CLOB
STATEMENT --导致错误的语句
CLOB
SQL> select username,statement,message from sperrorlog;
USERNAME
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
STATEMENT
MESSAGE
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-
SCOTT
create table t(id number,name varchar2(2O)
ORA-00907: 缺失右括号
SCOTT
create table t(id number,name varchar2(2O))
ORA-00907: 缺失右括号
SCOTT
insert into t values(1,"heloong")
ORA-00001: 违反唯一约束条件 (SCOTT.PK_T)
如上查询结果,所有错误信息都记录到表sperrorlog,此功能对于oracle的批处理脚本很有用,可以记录整个过程的错误信息,而不用滚动屏幕进行查找,或者专门进行额外的日志记录。

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
