zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

PL/SQL学习笔记(五)

2023-09-11 14:16:03 时间

一。条件语句:

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;

 

举例:

None.gifDECLARE
None.gif  v_sal  NUMBER ( 6 , 2 );
None.gif  v_id  NUMBER ;
None.gif BEGIN
None.gif  v_id: = id ;
None.gif   SELECT  salary  into  v_sal  FROM  employee
None.gif   WHERE  id = v_id;
None.gif   IF  v_sal 4000   THEN
None.gif      update  employee  set  salary = (v_sal + 100 )  where  id = v_id;
None.gif   ELSE
None.gif      update  employee  set  salary = (v_sal - 900 )  where  id = v_id;
None.gif   END   IF ;
None.gif END ;
None.gif
None.gif


二。CASE语句:

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

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

 

None.gifCASE  selector
None.gif
None.gif   WHEN  expression1  THEN  dot.gif;
None.gif
None.gif   WHEN  expression  2   THEN  dot.gif;
None.gif
None.gif  dot.gif
None.gif

 

END CASE;

2。多种条件比较:

 

None.gifCASE
None.gif
None.gif   WHEN  condition1  THEN  dot.gif;
None.gif
None.gif   WHEN  condition2  THEN  dot.gif;
None.gif
None.gif   WHEN  condition3  THEN  dot.gif;
None.gif
END CASE;
None.gif  dot.gif
None.gif

 

 

(三)循环语句:

3种循环:

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

LOOP

   statement1;

   ...

   EXIT WHEN 退出循环条件;

END LOOP1;

例如:

 

None.gifLOOP
None.gif
None.gif   insert   into  employee(id,name)  values (i, dennis );
None.gif
None.gif  i: = i + 1 ;
None.gif
None.gif   EXIT   WHEN  i 10 ;
None.gif
None.gif END  LOOP;
None.gif

 

2。while循环:

WHILE conditon1 LOOP

   statement1;

   ...

END LOOP;

比如上面的例子改写为:

 

None.gifWHILE  i = 10  LOOP
None.gif
None.gif    insert   into  employee(id,name)  values (i, dennis ); 
None.gif
None.gif   i: = i + 1 ;
None.gif
None.gif END  LOOP;
None.gif

 

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

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

  statement1;

  ...

END LOOP;

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

 

(四)顺序控制语句

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

文章转自庄周梦蝶  ,原文发布时间2007 2 11



数据库小技能:PL/SQL中书写定义sql 触发器由数据库管理系统负责调用和执行,通过触发触发器所监听的事物来实现触发器的调用。 表级别的触发器(对于整个数据库表做监听) 行级别的触发器(对于表中的每一行做监听)
数据库小技能:PL/SQL(Procedure Language/SQL,过程化SQL语言)预备知识 过程化SQL语言(Procedural Language/SQL)是Oracle数据库对SQL语句的扩展:在普通SQL语句的使用上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载