十五、Oracle中的PL/SQL 块

目录

 

15.1. PL/SQL 块

15.2. Loop 循环(do…while)

15.3. while 循环 

15.4. for 循环 

15.5. IF 语句 

15.6. IF…ELSE 语句 

15.7. IF…ELSE…IF…ELSE 语句 

15.8. GOTO 语句


15.1. PL/SQL 块

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

 

DECLARE:  

声明部分 

BEGIN  

编写主题

EXCEPTION 

捕获异常

END ;

图一

 

图二


15.2. 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 ; -- 此循环是先执行一次之后再进行判断

 


15.3. 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 循环类似。

 


 

15.4. 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 ;

 


15.5. IF 语句 

 条件判断格式:

 IF条件THEN  

满足条件时,执行此语句 

END IF ;

 


DECLARE cou NUMBER ;

 BEGIN cou := 11 ; 

IF cou>10 THEN 

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

END IF ;

END ;

 


15.6. 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 ;

 


15.7. 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 ;

 


15.8. 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 ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发哥1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值