文档章节

Oracle return exit continue

taadis
 taadis
发布于 09/22 13:55
字数 472
阅读 16
收藏 0

常在循环体中看到下面3种语句:

  • return
  • exit
  • continue

举例说明

啥都没有

-- none 
begin
  for i in 1 .. 10 loop
    if i < 5 then
      dbms_output.put_line('i < 5, i = ' || to_char(i));
    else
      dbms_output.put_line('i >= 5, i = ' || to_char(i));
    end if;
  end loop;
  dbms_output.put_line('最外层');
end;
-- 输出
i < 5, i = 1
i < 5, i = 2
i < 5, i = 3
i < 5, i = 4
i >= 5, i = 5
i >= 5, i = 6
i >= 5, i = 7
i >= 5, i = 8
i >= 5, i = 9
i >= 5, i = 10
最外层

使用return

-- return
begin
  for i in 1 .. 10 loop
    if i < 5 then
      dbms_output.put_line('i < 5, i = ' || to_char(i));
    else
      return; -- return
      dbms_output.put_line('i >= 5, i = ' || to_char(i));
    end if;
  end loop;
  dbms_output.put_line('最外层');
end;
-- 输出
i < 5, i = 1
i < 5, i = 2
i < 5, i = 3
i < 5, i = 4

可以看出 return 的作用是直接返回了,直接结束了整个最外层语句块 begin & end /函数/存储过程.

使用exit

-- exit
begin
  for i in 1 .. 10 loop
    if i < 5 then
      dbms_output.put_line('i < 5, i = ' || to_char(i));
    else
      exit; -- exit
      dbms_output.put_line('i >= 5, i = ' || to_char(i));
    end if;
  end loop;
  dbms_output.put_line('最外层');
end;
i < 5, i = 1
i < 5, i = 2
i < 5, i = 3
i < 5, i = 4
最外层

可以看出 exit 的作用是跳出当前整个循环体,不再执行接下来的循环,同 c#/java 等编程语言中的 break.

使用continue

-- continue
begin
  for i in 1 .. 10 loop
    if i < 5 then
      dbms_output.put_line('i < 5, i = ' || to_char(i));
    else
      dbms_output.put_line('before continue i >= 5, i = ' || to_char(i));
      continue; -- continue
      dbms_output.put_line('after continue i >= 5, i = ' || to_char(i));
    end if;
  end loop;
  dbms_output.put_line('最外层');
end;
-- 输出
i < 5, i = 1
i < 5, i = 2
i < 5, i = 3
i < 5, i = 4
before continue i >= 5, i = 5
before continue i >= 5, i = 6
before continue i >= 5, i = 7
before continue i >= 5, i = 8
before continue i >= 5, i = 9
before continue i >= 5, i = 10
最外层

可以看出 continue 是跳过/不执行本次循环,会直接进行下一次循环.

© 著作权归作者所有

共有 人打赏支持
上一篇: RabbitMQ
下一篇: Oracle 实用SQL
taadis
粉丝 1
博文 410
码字总数 62859
作品 0
温州
其他
私信 提问
一篇博客分清shell中的状态返回值-return-break-continue-exit

一篇博客分清shell中的状态返回值-return-break-continue-exit 一、break、continue、exit、return的区别和对比 条件与循环控制及程序返回值命令知识表 二、break、continue、exit功能执行流...

于学康
2017/08/01
0
0
《Oracle PL/SQL开发指南》学习笔记19——Control Structures(Review Section,Mastery Check)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/84502552 这章是programming的核心所在。 Conditional Statements Review Sect...

预见未来to50
11/25
0
0
PHP跳出循环的方法及continue、break、exit的区别

continue continue 是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如...

度_
10/08
0
0
Bash之break、continue和return命令在循环中的作用

1 continue:直接跳过本次循环,进入下一次循环。 #!/bin/bash a=10 b=15 while [ $a -le $b ] do ((a++)) if [ $a -eq 11 ] || [ $a -eq 13 ] then continue fi echo $a done [root@master ......

科技小能手
2017/11/12
0
0
一个让人百思不得其解的代码

能不能注释一下哈,我就搞不明白他是为啥整 这些代码,以及关键句子的作用是啥 /** * 合法性验证 * */ private static function cp(){ //var_dump($_SERVER); if (self::CPURL == '') return...

ziluopao
2015/05/23
438
1

没有更多内容

加载失败,请刷新页面

加载更多

《激荡三十年》读书笔记的相关感悟3300字

《激荡三十年》读书笔记的相关感悟3300字: 《激荡三十年》是吴晓波以编年体的方式记录的中国1978年改革开放后至2008年的30年的企业史。这套被称为“新货殖列传”的“企业史记”记录了三十年...

原创小博客
13分钟前
0
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
51分钟前
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0
Win10 下安装Win7双系统

很多人买了预装64位Win8/8.1的电脑后想重装(或者再安装一个)Win7系统,但是折腾半天发现以前的方法根本不奏效。这是因为预装Win8/8.1的电脑统一采用了UEFI+GPT引导模式,传统的BIOS(Legacy...

yaly
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部