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 ;