[oracle]SQL * 加错误日志截断不工作

标签: Oracle
发布时间: 2017/4/15 18:21:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的脚本使用SQL * 错误日志记录加,在安装过程中跟踪错误。 脚本开始像这样-他们启用日志记录误差和截断任何现有的条目︰

SQL> set errorlogging on truncate
SQL> select * from table_does_not_exist;
select * from table_does_not_exist
              *
ERROR at line 1:
ORA-00942: table or view does not exist

然后在尽头我查询 sperrorlog ,看看问题出在哪里︰

SQL> select statement from sperrorlog;

STATEMENT
--------------------------------------------------------------------------------
select * from table_does_not_exist

但时不时 truncate 并不工作,而我得到错误从以前的安装。 为什么不 truncate 工作吗?

解决方法 1:

尽管它的名称,SQL * 加错误日志截断不实际上截断表。 它将删除的数据并不承诺。

这个 SQL * 加会话启用错误日志记录和创建一个错误。 另一个调用启用 errorlogging 和截断并清理数据,但回滚撤消截形。

SQL> set errorlogging on truncate
SQL> select * from table_does_not_exist;
select * from table_does_not_exist
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> commit;

Commit complete.

SQL> set errorlogging on truncate
SQL> select statement from sperrorlog;

no rows selected

SQL> rollback;

Rollback complete.

SQL> select statement from sperrorlog;

STATEMENT
--------------------------------------------------------------------------------
select * from table_does_not_exist

SQL>

为了安全起见,你应该总是发出 commit 右后 set errorlogging on truncate

赞助商