oracle经验之谈PL/SQL

20、PL/SQL 块

2018-10-22  本文已影响0人  小母牛不生产奶

PL/SQL 块

是在 SQL 语言之上发展起来的一种应用,可以集中的处理各种复杂的 SQL 操作。组成: 


DECLARE:  

声明部分 

BEGIN  

编写主题

EXCEPTION 

捕获异常

END ;


图一 图二

Loop 循环(do…while)

PL/SQL 之中也包含了:循环、分支等条件控制语句

Loop 循环(do…while) 格式:

 LOOP   循环的语句; 

 EXITWHEN终止条件; 

 循环条件必须更改; 

END LOOP ;


循环输出 1~10。

 DECLARE cou NUMBER ;

 BEGIN --必须给一个初始值

cou := 1 ; 

LOOP 

 DBMS_OUTPUT.put_line('cou = '||cou) ;

 EXIT WHEN cou>10 ;

  cou:= cou + 1 ; 

END LOOP ;

END ; -- 此循环是先执行一次之后再进行判断


while 循环 

格式:

 while(判断循环的条件)

loop  循环的语句; 

 循环条件的改变;

 Endloop ;

使用此语句修改上面的程序:

 DECLARE cou NUMBER ;

 BEGIN 

-- 必须给一个初始值

 cou:= 1 ; 

WHILE(cou<10)

LOOP  DBMS_OUTPUT.put_line('cou = '||cou) ;

  cou:= cou + 1 ; 

END LOOP ;

END ; / 此语句,是先判断,之后如果条件满足则执行,与 while 循环类似。


for 循环 

格式:

 FOR变量名称 in 变量的初始值..结束值

LOOP  循环语句;

END LOOP ;


DECLARE cou NUMBER ;

BEGIN 

FOR cou IN 1..10

LOOP  DBMS_OUTPUT.put_line('cou = '||cou) ;

END LOOP ;

END ;


IF 语句 

 条件判断格式:

 IF条件THEN  

满足条件时,执行此语句 

END IF ;


DECLARE cou NUMBER ;

 BEGIN cou := 11 ; 

IF cou>10 THEN 

 DBMS_OUTPUT.put_line('cou = '||cou) ; 

END IF ;

END ;


IF…ELSE 语句 

 如果 IF 满足了,则执行,否则执行ELSE

DECLARE cou NUMBER ;

BEGIN cou := 1 ; 

IF cou>10 THEN 

DBMS_OUTPUT.put_line('cou = '||cou) ; 

ELSE  

DBMS_OUTPUT.put_line('条件不满足') ; 

END IF ;

END ;


IF…ELSE…IF…ELSE 语句 

DECLARE 

cou NUMBER ;

BEGIN cou := 1 ;

 IFcou>10 THEN 

 DBMS_OUTPUT.put_line('cou = '||cou) ;

 ELSIF cou<5 THEN  

DBMS_OUTPUT.put_line('值小于5') ;

 ELSE  DBMS_OUTPUT.put_line('条件不满足') ;

 ENDIF ; END ;


GOTO 语句

无条件跳转语句

 DECLARE eno emp.empno%TYPE ;

 salemp.sal%TYPE ;

BEGIN

 eno:= &en ;

 SELECT sal INTO sal FROM emp WHERE empno=eno;

  IFsal>3500 THEN  

goto po1 ;

 ELSIF

sal>2000 THEN 

 gotopo2 ; 

ELSE  goto po3 ; 

END IF ; 

<>  DBMS_OUTPUT.put_line('高工资。。。') ;

 <>   DBMS_OUTPUT.put_line('中等工资。。') ;

 <>   DBMS_OUTPUT.put_line('底工资。。。') ;

END ;


上一篇下一篇

猜你喜欢

热点阅读