我使用Toad从数据库生成插入语句,如下所示:
Insert into TXT
(ID, STR)
Values
(23, 'test');
当其中一个语句出错时,SQLPlus会说:
Insert into TXT
*
ERREUR à la ligne 1 :
(...)
对于错误中的所有行,它总是说“ligne 1”,所以我需要看到错误的整行:
Insert into TXT (ID, STR) Values (23, 'test');
*
ERREUR à la ligne 1 :
(...)
是否有参数或以任何方式将其与SQLPlus一起显示?
答案 0 :(得分:0)
不确定这是否是您所追求的,但使用11g SQL * Plus客户端,您可以使用set errorlogging
存储它们:
SQL> set errorlog on truncate
SQL> insert into dual -- don't do this really of course
2 values (1, 2);
insert into dual -- don't do this really of course
*
ERROR at line 1:
ORA-00913: too many values
SQL> select statement, message from sperrorlog;
STATEMENT
--------------------------------------------------------------------------------
MESSAGE
--------------------------------------------------------------------------------
insert into dual -- don"t do this really of course
values (1, 2)
ORA-00913: too many values
只要您提交,您也可以在另一个会话中看到错误,例如脚本退出后。要求提交是一种耻辱;这似乎是自主交易的候选人,但我确信他们有他们的理由。如果你知道的话,你可以在同一个会话中查询它 - 如果你能在错误的情况下自动完成,我会很高兴。请注意,这也会捕获SQL * Plus错误(SP2-xxxxx),这些错误很难处理。
Tom Kyte之前已written about this,它也在this 11g top features article。
答案 1 :(得分:-1)
在脚本中使用SET ECHO ON
。 Sql * Plus将在终端上回显它播放的命令。
当报告错误时,查询将在其上方。