庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

PL/SQL学习笔记(五)

Posted on 2007-02-11 19:59 dennis 阅读(913) 评论(0)  编辑  收藏 所属分类: 数据库技术

编写控制结构:顺序结构,条件结构,循环结构

一。条件语句:

1。与delphi或者java,或者其他任何语言的条件语句基本一样咯:

单条件:

IF condition THEN

  ......

END IF;

双条件:

IF condition THEN

  ......

ELSE

  ...

END IF;

多条件:

IF condition THEN

   ...

ELSEIF conditon THEN

   ....

ELSEIF conditon THEN

   ....

ELSE

   ....

END IF;

 

举例:

DECLARE
  v_sal 
NUMBER ( 6 , 2 );
  v_id 
NUMBER ;
BEGIN
  v_id:
= ' &id ' ;
  
SELECT  salary  into  v_sal  FROM  employee
  
WHERE  id = v_id;
  
IF  v_sal < 4000   THEN
     
update  employee  set  salary = (v_sal + 100 where  id = v_id;
  
ELSE
     
update  employee  set  salary = (v_sal - 900 where  id = v_id;
  
END   IF ;
END ;


二。CASE语句:

各种语言的switch ...case语句相同,只不过没有switch关键字。

1。使用单一选择符进行比较:

 

CASE  selector

  
WHEN  expression1  THEN  ;

  
WHEN  expression  2   THEN  ;

  

 

END CASE;

2。多种条件比较:

 

CASE

  
WHEN  condition1  THEN  ;

  
WHEN  condition2  THEN  ;

  
WHEN  condition3  THEN  ;

END CASE;
  

 

 

(三)循环语句:

3种循环:

1。基本循环,至少执行一次:

LOOP

   statement1;

   ...

   EXIT WHEN 退出循环条件;

END LOOP1;

例如:

 

LOOP

  
insert   into  employee(id,name)  values (i, ' dennis ' );

  i:
= i + 1 ;

  
EXIT   WHEN  i > 10 ;

END  LOOP;

 

2。while循环:

WHILE conditon1 LOOP

   statement1;

   ...

END LOOP;

比如上面的例子改写为:

 

WHILE  i <= 10  LOOP

   
insert   into  employee(id,name)  values (i, ' dennis ' ); 

   i:
= i + 1 ;

END  LOOP;

 

3。FOR循环,类似于ruby的FOR循环:

FOR counter IN [REVERSE] 下限..上限 LOOP

  statement1;

  ...

END LOOP;

REVERSE参数可选,有的话表示从上限往下限递减。

 

(四)顺序控制语句

PL/SQL也提供了GOTO和NULL语句用于控制语句执行顺序,GOTO语句与JAVA的机制相似,通过label来实现跳转,尽量不要使用。NULL语句不会执行任何操作,它的存在主要是为了提高程序的可读性。 


只有注册用户登录后才能发表评论。


网站导航: