Oracle数据库管理、应用与开发(十七)

22.5 循环语句

最基本的循环称为无条件循环,如果没有指定exit语句,循环将无条件执行。这种循环称为死循环,死循环尽量避免。

22.5.1 无条件循环

语法格式如下:

                     Loop

                   ---statement---

                           Exit when condition

                           End loop;

案例

SQL> declare 
      				i number(2):=1; 
       			begin 
            		loop 
              			dbms_output.put_line(i);
                   		i:=i+1; 
          				exit when i>10; 
          			end loop; 
          		end;
   				/ 

 

22.5.2 While循环

                       语法形式如下:

                                While condition

                         Loop

                       Statement;

                           End loop;

SQL> declare 
     				i number(2):=1; 
         		begin 
           			while i<10   
              			loop dbms_output.put_line(i); 
                			i:=i+1; 
             			end loop; 
          		end;
  				/

 

22.5.3 For循环

         语法形式:

                               For loop_control_variable in [reverse] lower upper loop

                        Statement;

                           End loop;

SQL> begin
         			for i in 1..10 
            		loop 
            			dbms_output.put_line(i); 
           			end loop;
       			end;
      			/

 

22.5.4 PL/SQL语句中的SQL语句

declare
   				countnum number(2); //声明变量
begin
select count(*) into countnum from emp; //into的作用把从数据中检测出的数据赋值给哪个变量 
   				dbms_output.put_line(countnum);
end;
/

 

注意:如果在select中没有into语句则会出现错误。

declare
   				empno number(4);
   				ename varchar2(10);
   				job varchar2(9);
begin
   				select empno,ename,job into empno,ename,job from emp;
   				dbms_output.put_line(empno||'/'||ename||'/'||job);
end;
/

 

以上代码中会出现错误,原因是因为定义的变量只可以存储一个单独的值,而返回的是多个值。正确的语法格式应该为:

SQL> declare
  			2     	empno number(4);
  			3     	ename varchar2(10);
  			4     	job varchar2(9);
  			5    begin
  	6     select empno,ename,job into empno,ename,job from emp where empno='7369'; //在这加上where条件了
  			7     	dbms_output.put_line(empno||'/'||ename||'/'||job);
  			8  	 end;
  			9    /
7369/SMITH/CLERK

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值