gpt4 book ai didi

oracle - SQL * Plus总是返回退出代码0?

转载 作者:行者123 更新时间:2023-12-03 08:46:18 25 4
gpt4 key购买 nike

每当我使用Sql * plus运行sql脚本并检查$?时,即使脚本不成功,我也会得到0。


#$ sqlplus user/password@instance @script.sql


SQL*Plus: Release 10.2.0.1.0 - Production on Wed Aug 7 14:20:44 2013

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

v$dataf-ile d,
*
ERROR at line 6:
ORA-00933: SQL command not properly ended


Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
$ echo $?
0
$

我希望它在发生错误时返回非零值。

如何实现?

最佳答案

您必须在脚本中明确告诉sqlplus这样做。基本上,可以使用两个语句:

  • WHENEVER SQLERROR EXIT SQL.SQLCODE
  • WHENEVER OSERROR EXIT

  • 例如:
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    begin
    SELECT COLUMN_DOES_NOT_EXIST FROM DUAL;
    END;
    /

    对于操作系统错误:
    WHENEVER OSERROR EXIT FAILURE
    START no_such_file

    有关更多信息,请参见 thisthat

    希望能帮助到你。祝好运!

    关于oracle - SQL * Plus总是返回退出代码0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125691/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com