Sql*plus 总是返回退出代码 0?

2024-04-09

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

Example

#$ 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

有关更多信息,请参阅this http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm and that http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve051.htm.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sql*plus 总是返回退出代码 0? 的相关文章

随机推荐

  • 如何为 hotchocolate 12 graphql 中的扩展字段设置虚拟过滤器处理程序?

    我有一个扩展属性需要可过滤 但是它从不同的数据源获取数据 这意味着默认过滤将不起作用 因为查询无法正确翻译 我想创建一个虚拟过滤器类型处理程序 然后根据查询上下文手动应用过滤器 public class User public string
  • 在 cPanel 上设置 Laravel 项目

    我正在尝试将 laravel 项目设置为 cpanel 上的子域 但遇到解析问题和错误 这些是我到目前为止所做的步骤 压缩项目并将其上传到此目录public html encuestas 解压并将内容移动到上面的目录 使用 PuTTY 获取
  • 设置 XGBoost 提前停止的 Tol

    我正在使用 XGBoost 并提前停止 经过大约 1000 个 epoch 后 模型仍在改进 但改进的幅度非常低 IE clf xgb train params dtrain num boost round num rounds evals
  • 编写 webkit Css 后滚动条中没有箭头按钮

    请参阅此处的表格 http www funkkopfhoerer test com vergleichstabelle funkkopfhoerer http www funkkopfhoerer test com vergleichsta
  • Android中自定义圆形复选框

    我正在尝试获取 Google 应用程序照片选择 UI 我正在使用 Appcompat 复选框来实现这一目标 但没有成功 我正在努力的步骤 1 将复选框背景设置为自定义圆形 2 在xml中定义自定义形状 这是我的复选框 xml 的样子
  • ASP.NET Core SignalR websocket 连接限制

    我使用 Microsoft AspNetCore SignalR Client 对在 Windows Server 2016 标准上托管的 SignalR ASP NET Core 应用程序进行负载测试 安装了 Dotnet 核心托管 2
  • 模板参数 - 带有可变参数的函数指针

    我知道我可以这样做 template
  • 如何在春季结束会话 3

    我在用 SessionAttributes在春天 但我不知道如何结束会话 我尝试了下面的代码 但出现错误 请给我一些例子 Thanks RequestMapping value LogoutAction public String logo
  • 在没有受信任证书的情况下安装 .appx?

    我有一个 Windows 8 应用程序 我想将其部署到我的 Windows RT 2 我只有 appx 我想绕过商店安装它进行测试 但是 当我运行命令时 Add AppxPackage
  • 克隆二叉树的时间复杂度

    我想知道克隆二叉树的代码的时间复杂度是否为 O n 如果是 O n 你能解释一下为什么吗 如果没有 你能建议一种时间复杂度为 O n 的方法吗 public TreeNode cloneTree TreeNode root if root
  • 需要查看sql中的一个日期范围是否与另一个日期范围重叠

    我有一个存储房间预订的表 其架构是 ID ROOM ID CHECK IN DATE CHECK OUT DATE USER ID 我需要对一组日期范围内可用 不可用的房间运行搜索查询 另请记住 还有另一个表保存预订房间的日期 其格式如下
  • Angular 5 的子路由无法正常工作

    您好 我正在尝试使用子路由 但它无法按预期工作 我的 Angular 5 结构 在这种情况下 顶部导航包含加载子模块的链接 子导航包含更新子模块内容的链接 应用程序模块 和应用程序组件 包含一个顶部导航栏 用于导航到不同的子模块 应用程序组
  • 根据任何列值从数据框中删除行[重复]

    这个问题在这里已经有答案了 我有一个这样的数据框 Plate MeanV1 MeanV2 MeanV3 etc 0 1 3 2 4 8 6 8 1 1 3 1 10000 10000 2 2 2 8 4 6 6 1 3 2 2 9 5 1
  • 删除使用闭包语法按名称创建的通知中心观察者是否足够?

    我有一些使用块 尾随闭包语法创建的通知 如下所示 NotificationCenter default addObserver forName NSManagedObjectContextObjectsDidChange object mo
  • RESTful:在一个请求中创建多条记录

    我有一个允许用户向其他人发送邀请的表单 邀请的数量可由用户在用户界面中配置 并且理论上可以是无限的 用户需要为每个邀请定义一个电子邮件地址 单击 发送 时 理想情况下应该向服务器发送一个请求 将所有记录包装在一次批量提交中 尽管这并不是真正
  • Nhibernate - 找不到属性的 getter

    我正在尝试构建 MusicStore Nhibernate 端口 但遇到了此错误 无法在类中找到属性 OrderInfo 的 getter MvcMusicStore Models OrderDetail 但有以下内部异常 NHiberna
  • 对于某些 Windows 命令,nodejs exec 命令失败,并且没有明确的错误消息

    我的程序中有一个编辑器 可以动态编写命令并执行它们 我想通过 child process exec 将 myPublish 目录中的所有文件和文件夹移动到当前目录 我在 Windows 中使用 robocopy 命令 当我在 cmd 中测试
  • 什么是 Azure 的 Microsoft.Insights 资源提供程序?

    我刚刚开始使用 Azure 发现我没有获得任何存储和其他资源的指标 因为我没有microsoft insights资源提供者作为我订阅的一部分 我注册了我的订阅microsoft insights我得到了我想要的所有数据 但我想知道注册的含
  • 收藏的意义何在

    我一直在阅读Effective Java 并且遇到了无界集合类型当我们只能插入null元素 因为它看起来毫无意义 我一直在试图弄清楚这个概念 但它似乎没有多大意义 任何帮助将非常感激 Collection collection Object
  • Sql*plus 总是返回退出代码 0?

    每当我使用 Sql plus 运行 sql 脚本并检查 时 即使脚本不成功 我也会得到 0 Example sqlplus user password instance script sql SQL Plus Release 10 2 0