codecamp

PL / SQL循环

可能有一种情况,当你需要执行的代码几次数块。在一般情况下,语句顺序执行:在一个函数的第一个语句首先执行,然后是第二个,等等。

编程语言提供了各种控制结构,使更多的复杂的执行路径。

循环语句可以让我们执行的语句多次声明或组,下面是大多数编程语言的循环语句的一般形式:

环路结构

PL / SQL提供了以下类型的循环来处理循环的要求。点击以下链接查看其详细信息。

环型描述

PL / SQL基本LOOP

在这个循环结构,语句序列是循环和END LOOP语句之间封闭。在每次迭代中,语句序列被执行,然后在循环的顶部控制简历。

PL / SQL WHILE LOOP

重复语句的陈述或一组,而给定的条件为真。它在执行循环体之前测试的条件。

PL / SQL FOR循环

执行的语句多次的序列和缩写管理该循环变量的代码。

在PL / SQL嵌套循环

您可以使用一个或多个环内的任何其他基本循环,同时或循环。

标注一个PL / SQL循环

PL / SQL循环可以被标记。标签应该用双尖括号括起来(<<和>>),并出现在循环语句的开始。标签名也可以出现在LOOP语句的结束。您可以使用该标签在EXIT语句从循环退出。

下面的程序说明了这一概念:

DECLARE
   i number(1);
   j number(1);
BEGIN
   << outer_loop >>
   FOR i IN 1..3 LOOP
      << inner_loop >>
      FOR j IN 1..3 LOOP
         dbms_output.put_line('i is: '|| i || ' and j is: ' || j);
      END loop inner_loop;
   END loop outer_loop;
END;
/

当上述代码在SQL提示符执行时,它产生了以下结果:

i is: 1 and j is: 1
i is: 1 and j is: 2
i is: 1 and j is: 3
i is: 2 and j is: 1
i is: 2 and j is: 2
i is: 2 and j is: 3
i is: 3 and j is: 1
i is: 3 and j is: 2
i is: 3 and j is: 3

PL/SQL procedure successfully completed. 

循环控制语句

循环控制语句改变其正常的顺序执行。当执行留下了范围,在该范围内创建的所有自动对象被销毁。

PL / SQL支持以下控制语句。贴标循环也采取了循环外的控制有帮助。点击以下链接查看其详细信息。

控制语句描述

EXIT语句

exit语句END LOOP后立即完成回路和控制通行证声明

CONTINUE语句

使循环跳过它的身体的其余部分,并立即重申之前重新测试其状态。

GOTO语句

控制权转移给标签的语句。虽然不建议使用GOTO语句在你的程序。

PL / SQL包
PL / SQL集合
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }