在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判定两个整数变量的大小。 执行结果如图9.16所示。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=90; number2 integer:=60; begin if number1>=number2 then dbms_output.put_line('number1大于等于number2'); end if; end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ conditioncontrol1.sql。
在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判定两个整数变量的大小,输出不同的结果。执行结果如图9.18所示。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; begin if number1>=number2 then dbms_output.put_line('number1大于等于number2'); else dbms_output.put_line('number1小于number2'); end if; end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ conditioncontrol2.sql。
3. if嵌套条件控制 采用if嵌套条件控制的语法结构如图9.19所示。
在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序判定两个整数变量的大小,输出不同的结果。 执行结果如图9.20所示。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; begin if number1<=number2 then if number1=number2 then dbms_output.put_line('number1等于number2'); else dbms_output.put_line('number1小于number2'); end if; else dbms_output.put_line('number1大于number2'); end if; end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/ conditioncontrol3.sql。
在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; i integer:=0; begin loop number1:=number1+1; if number1=number2 then exit; else i:=i+1; end if; end loop; dbms_output.put_line('共循环次数:'to_char(i)); end; ――――――――――――――――――――――――――――――――――――― 执行结果如图9.22所示。
【配套程序位置】:第9章/loopcontrol1.sql。 2. loop..exit..when..end loop循环控制 采用loop..exit..when..end loop循环控制的语法结构与图9.21所示结构类似。 exit when实际上就相当于 if 条件 then exit; end if; 在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; i integer:=0; begin loop number1:=number1+1; i:=i+1; exit when number1=number2; end loop; dbms_output.put_line('共循环次数:'to_char(i)); end; ――――――――――――――――――――――――――――――――――――― 执行结果如图9.23所示。
【配套程序位置】:第9章/loopcontrol2.sql。 when循环控制结束条件比采用if的条件控制结束循环次数多1次。 3. while..loop..end loop循环控制 采用loop..exit..when..end loop循环控制的语法如下。 while 条件 loop 执行语句段; end loop; 在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序将number1变量每次加1,一直到等于number2为止,统计输出循环次数。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; i integer:=0; begin while number1<number2 loop number1:=number1+1; i:=i+1; end loop; dbms_output.put_line('共循环次数:'to_char(i)); end; ――――――――――――――――――――――――――――――――――――― 执行结果如图9.24所示。
【配套程序位置】:第9章/whilecontrol.sql。 4. for..in..loop..end循环控制 采用for..in..loop..end循环控制的语法如下。 for 循环变量 in [reverse] 循环下界..循环上界 loop 循环处理语句段; end loop; 在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序通过循环变量I来控制number1增加次数,输出结果。执行结果如图9.25所示。 ――――――――――――――――――――――――――――――――――――― set serveroutput on declare number1 integer:=80; number2 integer:=90; i integer:=0; begin for i in 1..10 loop number1:=number1+1; end loop; dbms_output.put_line('number1的值:'to_char(number1)); end; ――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章/forcontrol.sql。