【问题标题】:sqlcl errorlog configurationsqlcl 错误日志配置
【发布时间】:2017-08-29 20:02:38
【问题描述】:

我喜欢将我的 oracle 数据库脚本设置为在出现任何数据库或操作系统问题时失败。

我一直在考虑迁移到 SQLCL,但是我为检测和触发非数据库问题的回滚而采用的 SQL*Plus 方法在 SQLCL 上失败了,我想知道是否有人有替代解决方案(或一个好的解决方法)。

我一直在使用SET ERRORLOGGING 将任何 SP 错误定向到 SPERRORLOG,在那里我可以在提交之前检测它们并决定回滚/分支/继续/警报等。

我抓住了最新的 sqlcl(2016 年 6 月 sqlcl-4.2.0.16.175.1027),希望能解决以下问题,但它仍然存在。

发出SET ERRORLOGGING ON 时,我得到以下信息:

SQL> SET ERRORLOGGING ON 
SP2-0158: unknown SET option beginning "errorloggi..."

手动输入似乎表明此选项在 SQLCL 中没有任何其他更改。

SQL> help set errorlogging 
SET ERRORLOGGING 
ERRORL[OGGING]{ON|OFF} 
[TABLE [schema.]tablename]     [TRUNCATE] [IDENTIFIER  identifier]

这只是一个错误,还是需要其他东西来启动和运行 ERRORLOGGING?

如果这是一个错误,是否有检测 SP(2)- 错误的好方法?

【问题讨论】:

  • 您运行的是什么版本的 Oracle? SQL*PLUS 错误日志功能在 11.1 版本中引入
  • 谢谢@NicholasKrasnov 我在 11GR2。 SPERRORLOG 在 SQLPlus 中工作正常,只有 SQLCL 失败。

标签: oracle sqlplus sqlcl


【解决方案1】:

看来,尽管errorlogging 设置存在于可用的SQLcl 的set 设置中,但目前它不受支持。

运行show <setting> 命令检查是否支持设置。

./sql -v

SQLcl: Release 4.2.0.16.175.1027 RC

SQL> help set errorlogging

SET ERRORLOGGING
   ERRORL[OGGING] {ON|OFF}
   [TABLE [schema.]tablename] 
   [TRUNCATE] [IDENTIFIER identifier]

SQL> show errorlogging
errorlogging Unsupported

【讨论】:

  • 好的,这就解释了。谢谢尼古拉斯,我会接受的。诚然,我很惊讶此信息并未直接包含在“帮助”中。
【解决方案2】:

我们到了。它现在和latest OTN release 或Oracle 数据库版本都受支持。

SQL> conn barry/oracle@localhost:1521/xe
Connected.
SQL> show errorlogging
errorlogging is OFF
SQL> set errorlogging on
SQL> show errorlogging
errorlogging is ON TABLE SPERRORLOG
SQL> select * from NOTATABLE;

Error starting at line : 1 in command -
select * from NOTATABLE
Error at Command Line : 1 Column : 15
Error report -
SQL Error: ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:
*Action:


SQL> set sqlformat ansiconsole
SQL> /

USERNAME  TIMESTAMP                     SCRIPT  IDENTIFIER  MESSAGE                                   
STATEMENT

BARRY     29-AUG-17 12.55.45.000000000                      ORA-00942: table 
or view does not exist
select * from NOTATABLE

【讨论】:

  • 很高兴听到,谢谢巴里。这个特性将有助于扩展 sqlcl 的使用场景。
猜你喜欢
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 2014-04-15
  • 2013-10-19
  • 1970-01-01
  • 2017-03-05
相关资源
最近更新 更多