更新/删除不存在的行时出现 PL/SQL 异常

2024-03-12

我这些天正在学习 PL/SQL,目前正在使用 oracle HR 模式处理过程和异常。

这是我的简单过程。

create or replace
PROCEDURE DEL_JOB
(p_jobid jobs.job_id%TYPE)
AS 
sqle NUMBER; 
sqlm VARCHAR2(300);
BEGIN
DELETE FROM JOBS 
WHERE JOB_ID = UPPER(p_jobid);
IF SQL%NOTFOUND THEN
  DBMS_OUTPUT.PUT_LINE('No such record');
END IF;
EXCEPTION
 WHEN OTHERS THEN
  sqle := SQLCODE;
  sqlm := SQLERRM;
  DBMS_OUTPUT.PUT_LINE('There is no job with this id that could be deleted');
  DBMS_OUTPUT.PUT_LINE('Error Code ='||sqle||' Error message =' ||sqlm);
END;

当我执行此过程时,输出是

  No such record
  PL/SQL procedure successfully complete. 

但是,根据 Oracle PDF,它应该抛出异常,并且我确实应该得到我在异常中输入的消息。

对于不存在的记录的更新也发生了同样的事情。 请指教。谢谢


我相信SQL%NOTFOUND回报true当没有找到记录时。你的IF在这种情况下将评估为 true,因此将 put_line 写入终端。 SQL语句执行成功。如果您从命令行单独执行该 SQL 语句,您将收到 0 行更新/删除,而不是 Oracle 错误。

如果你想抛出异常,你可以使用RAISE在你的里面IF并将其指向您想要引发的异常块中的异常。

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

更新/删除不存在的行时出现 PL/SQL 异常 的相关文章

随机推荐

  • 如何在 setup.py 中指定库版本?

    In my setup py文件中 我指定了运行我的项目所需的一些库 setup install requires django pipeline south 如何指定这些库所需的版本 我不确定构建 但是 对于 setuptools dis
  • 为什么我的 Silverlight XAML 绑定的单元测试失败?

    我定义了以下组合框
  • SciPy/NumPy 导入指南

    注意 我检查了重复项 但没有任何内容清楚地回答我的问题 我相信如果我错过了什么 你会让我知道的 为了清理我的代码 我一直在寻找在我的程序中导入 SciPy 和 NumPy 的标准约定 我知道没有严格的指导方针 我可以按照我想要的方式去做 但
  • 在 JavaScript 中将 Date() 舍入到最接近的 5 分钟

    Using a Date 例如 我如何将时间四舍五入到最接近的五分钟 例如 如果现在是下午 4 47它会将时间设置为下午 4 45 如果您已经有一个 那就非常简单了Date object var coeff 1000 60 5 var da
  • 使用 attr 设置与 CSP 一起使用的 css 变量内联

    我在想如何在不使用内联样式的情况下使用 css 变量 我想我可以用这个 data color color attr data color color green color var color blue div hello div 看来 a
  • Bootstrap datetimepicker 添加 1 天以记住

    我正在使用 bootstrap datetimepicker 如何在 datetimepicker bootstrap 中添加一天minDate 我想过滤minDate多1天 例如我的checkIndatetimepicker 是 02 1
  • git 将 master 合并到当前分支的快捷方式

    所以有时我在一个分支上工作 我想提取自分支创建以来在 origin master 上所做的更改 只是在做git merge master通常是不够的 因为本地主机可能没有远程主机的更改 所以我发现自己必须这样做 save any uncom
  • 为什么函数式编程好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为 Android 实现卫星菜单,XML 文件显示未找到资源

    首先 我尝试使用这个库 并且尝试编译一个基本测试程序 https github com siyamed android satellite menu https github com siyamed android satellite me
  • Xcode 场景 Dock 隐藏

    我的场景底座被隐藏了 我怎样才能使其可见 红色的不见了 您可以在左侧下方找到此按钮 只需单击它 you will get what you need Enjoy
  • R:将“vline”和“hline”语句组合在一起(ggplot2)

    我正在使用 R 编程语言 最近 我学习了如何使用 ggplot 库 绘制 水平线和垂直线 library ggplot2 Simple scatter plot sp lt ggplot data mtcars aes x wt y mpg
  • 跳过模型访问器

    我有一个名为 Run 的模型 其中包含此方法 public function getNameAttribute name if name Eendaags return this gt race edition gt race gt nam
  • 未创建骨干关系相关模型

    我正在尝试创建一个嵌套的关系骨干项目 但我真的很挣扎 我想要做的粗略想法如下所示 但在客户端上调用 fetch 时 我的印象是 将根据以 JSON 形式返回的预订自动创建许多预订 我的 JSON 格式可以在 MVC 轮廓下方看到 CLIEN
  • 链接到 Wagtail CMS 中的特定页面

    在 Wagtail CMS 中 我不知道如何构建指向特定页面的链接 我想要我的模板中有一个 固定的 未创作的 链接BlogIndexPage to my BlogIndexArchivePage反之亦然 在官方文档中pageurl http
  • 如何让 javascript 生成标题工具提示以显示 SVG

    我正在尝试获取 SVG 元素的工具提示 在 Firefox 16 0 2 下测试 我尝试了这个小例子 它工作正常
  • 如何解析布尔表达式并将其加载到类中?

    我有以下内容BoolExpr class class BoolExpr public enum BOP LEAF AND OR NOT inner state private BOP op private BoolExpr left pri
  • Eclipse 不突出显示匹配变量

    Eclipse 没有为我突出显示匹配的变量 我已经尝试通过更改 标记出现次数 Window gt Preferences gt Java gt Editor gt Mark Occurrences 但它不起作用 我不知道为什么这不起作用 而
  • Angular 2 应用程序基础 href 与 Cordova IOS

    我正在使用 Angular 2 和 cordova 开发一个应用程序 我使用 Angular cli 来构建应用程序 我现在在 IOS 应用程序启动时遇到了一些路由问题 基本href似乎设置错误 如果我使用以下命令设置基本 href 应用程
  • 读取大型 Excel 文件 .xlsx

    我正在使用图书馆 org apache poi XSSFWorkbook workbook new XSSFWorkbook fileInputStream 我想 org xml sax 库 但无法将其转换为工作簿 注意 最终结果我希望返回
  • 更新/删除不存在的行时出现 PL/SQL 异常

    我这些天正在学习 PL SQL 目前正在使用 oracle HR 模式处理过程和异常 这是我的简单过程 create or replace PROCEDURE DEL JOB p jobid jobs job id TYPE AS sqle