sqlcl错误日志配置
sqlcl errorlog configuration
我喜欢将我的 oracle 数据库脚本设置为在出现任何数据库或 OS 问题时失败。
我一直在考虑迁移到 SQLCL,但是我用于检测和触发非数据库问题回滚的 SQL*Plus 方法失败了 SQLCL 和我想知道是否有人有替代解决方案(或好的解决方法)。
我一直在使用 SET ERRORLOGGING
将任何 SP- 错误定向到 SPERRORLOG,我可以在提交之前检测到它们并决定 rollback/branch/continue/alert,等等
我获取了最新的 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)- 错误?
好吧,尽管 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
我们到了。它现在和 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
我喜欢将我的 oracle 数据库脚本设置为在出现任何数据库或 OS 问题时失败。
我一直在考虑迁移到 SQLCL,但是我用于检测和触发非数据库问题回滚的 SQL*Plus 方法失败了 SQLCL 和我想知道是否有人有替代解决方案(或好的解决方法)。
我一直在使用 SET ERRORLOGGING
将任何 SP- 错误定向到 SPERRORLOG,我可以在提交之前检测到它们并决定 rollback/branch/continue/alert,等等
我获取了最新的 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)- 错误?
好吧,尽管 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
我们到了。它现在和 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