ORA-06592: 执行 CASE 语句时未找到 CASE

1、概述

1.1 场景

  • 一般来说,对于 case when 条件语句,符合条件就执行,反之就不执行(如:Python、Java)
  • 但 Oracle 中比较 特殊若 case 中不存在符合条件的语句,就报错
  • 所以就导致这个问题虽然简单,但容易被忽略。

2、实例分析

DECLARE
   i INTEGER := 6;
BEGIN
   CASE
      WHEN i <= 5 THEN
         dbms_output.put_line('小于等于 5');
      WHEN i <= 1 THEN
         dbms_output.put_line('小于等于 1');
/*      ELSE
         -- 解决办法,增加一个 ELSE 分支
         dbms_output.put_line('case 中无符合的 i');*/
   END CASE;
EXCEPTION
   WHEN OTHERS THEN
      dbms_output.put_line(dbms_utility.format_error_backtrace);
      dbms_output.put_line(SQLERRM);
END;

输出结果:

ORA-06512: 在 line 4

ORA-06592: 执行 CASE 语句时未找到 CASE
发布了43 篇原创文章 · 获赞 32 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_34745941/article/details/99947625