>有谁知道这是否可能?
例:
CREATE TABLE XPTO (
this_is_an_error_because_there_is_no_data_type
);
查询结果:
"**Error starting at line X in command:
blablabla
SQL ERROR: ORA-02263**"
是否可以将查询结果保存在表中?
我正在制作一个带有CREATE
表/过程的"安装"脚本,GRANT
简单的东西,但我想知道是否可以将安装过程中可能弹出的错误保存在表中我的表或那里的任何内容(在我的安装文件中.sql)。
任何帮助,想法,解决方法,将不胜感激。谢谢大家!
在 SQL*Plus 中,这可以通过 SQL*Plus 错误日志记录来完成。
启用错误日志记录:
SQL> set errorlogging on
运行脚本:
SQL> CREATE TABLE XPTO (
2 this_is_an_error_because_there_is_no_data_type
3 );
this_is_an_error_because_there_is_no_data_type
*
ERROR at line 2:
ORA-00972: identifier is too long
最后,所有错误都存储在表中 SPERRORLOG
.
SQL> select * from sperrorlog;
USERNAME
------------------------------------------------
TIMESTAMP
------------------------------------------------
SCRIPT
------------------------------------------------
IDENTIFIER
------------------------------------------------
MESSAGE
------------------------------------------------
STATEMENT
------------------------------------------------
JHELLER
25-JAN-16 01.43.13.000000 PM
ORA-00972: identifier is too long
CREATE TABLE XPTO (
this_is_an_error_because_there_is_no_data_type
)
正如托尼·安德鲁斯(Tony Andrews)在评论中所说,SPOOL
是执行此操作的最常见方法。 但这是因为很少有SQL*Plus脚本是完全自动化的。 如果您的目标是真正的自动化,则需要像 SQL*Plus 错误日志记录或whenever sqlerror exit failure
之类的东西来检测错误。