PL/SQL中的流程控制语句

系统 1460 0
一、条件控制语句
1、只有IF的条件控制语句
IF concition THEN
STATEMENTS;
END IF;
请看以下示例:
                
                  DECLARE

        salaryAVG number(7,2);

        empSalary number(7,2);

        BEGIN

        SELECT AVG(SAL) INTO salaryAVG FROM scott.emp;

        SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;

        IF empSalary>salaryAVG THEN

        DBMS_OUTPUT.PUT_LINE('该职工工资超过了平均线'||salaryAVG);

        END IF;

        END;

        
                
              


2、IF、ELSE语句
IF condition THEN
STATEMENTS;
ELSE
STATEMENTS;
END IF;
请看以下示例:
                
                  DECLARE

        salaryAVG number(7,2);

        empSalary number(7,2);

        BEGIN

        SELECT AVG(SAL) INTO salaryAVG FROM scott.emp;

        SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;

        IF empSalary>salaryAVG THEN

        DBMS_OUTPUT.PUT_LINE('该职工工资超过了平均线'||salaryAVG);

        ELSE

        DBMS_OUTPUT.PUT_LINE('该职工工资没有超过平均线'||salaryAVG);

        END IF;

        END;

        
                
              


3、IF ESLEIF ELSE语句
IF condition THEN
STATEMENTS;
ELSIF  
condition THEN 
STATEMENTS;
ELSE
STATEMENTS;
END IF;
请看以下示例:
                  
                    DECLARE

        empSalary number(7,2);

        BEGIN

        SELECT SAL INTO empSalary FROM scott.emp WHERE EMPNO=&eno;

        IF empSalary<2000 THEN

        DBMS_OUTPUT.PUT_LINE('需交税0元');

        ELSIF empSalary<4000 THEN

        DBMS_OUTPUT.PUT_LINE('需交税'||(empSalary*0.15-175)||'元');

        ELSE

        DBMS_OUTPUT.PUT_LINE('需交税'||(empSalary*0.25-375)||'元');

        END IF;

        END;

        
                  
                


4、CASE语句
单一值进行比较:
CASE selector
WHEN expression1 THEN result1;
WHEN expression2 THEN result2;
WHEN expression3 THEN result3;
ELSE result4;
END CASE;
请看以下示例:
                  
                    DECLARE

        eno NUMBER(2);

        BEGIN

        eno:=&no;

        CASE eno

        WHEN 10 THEN DBMS_OUTPUT.PUT_LINE('部门1');

        WHEN 20 THEN DBMS_OUTPUT.PUT_LINE('部门2');

        WHEN 30 THEN DBMS_OUTPUT.PUT_LINE('部门3');

        ELSE DBMS_OUTPUT.PUT_LINE('没有该部门');

        END CASE;

        END;

        --多重条件进行比较:

        CASE

        WHEN expression1 THEN result1;

        WHEN expression2 THEN result2;

        WHEN expression3 THEN result3;

        ELSE result4;

        END CASE;

        
                  
                


二、循环控制语句
1、LOOP循环
LOOP
STATEMENTS;
END LOOP
;
示例1:
                  
                    DECLARE

        a int;

        BEGIN

        a:=0;

        LOOP

        IF a=10 THEN

        EXIT;

        END IF;

        DBMS_OUTPUT.PUT_LINE(a);

        a:=a+1;

        END LOOP;

        END;

        
                  
                


示例2:
                  
                    DECLARE

        a int;

        BEGIN

        a:=0;

        LOOP

        EXIT WHEN a=10;

        DBMS_OUTPUT.PUT_LINE(a);

        a:=a+1;

        END LOOP;

        END;

        
                  
                


2、WHILE循环

示例1:
                  
                    DECLARE

        a int;

        BEGIN

        a:=0;

        WHILE a<10 LOOP

        DBMS_OUTPUT.PUT_LINE(a);

        a:=a+1;

        END LOOP;

        END;

        
                  
                


3、FOR循环

示例1:
                  
                    BEGIN

        FOR a IN 0..9 LOOP

        DBMS_OUTPUT.PUT_LINE(a);

        END LOOP;

        END;

        
                  
                


4、多重循环与标签
示例1:
                  
                    DECLARE

        result INT;

        BEGIN

        <
                  
                  
                    
                      > FOR i IN 1..10 LOOP <
                    
                    
                      
                        > FOR j IN 1..10 LOOP result:=i*j; EXIT outer WHEN result=10; EXIT WHEN result=5; DBMS_OUTPUT.PUT_LINE('内:'||result); END LOOP inner; DBMS_OUTPUT.PUT_LINE('外:'||result); END LOOP outer; DBMS_OUTPUT.PUT_LINE('最后:'||result); END; 
                      
                    
                  
                


三、顺序控制语句
1、GOTO语句
语法:GOTO labelName;
2、NULL语句
NULL;语句不执行任何操作,直接传递到下一条语句。

PL/SQL中的流程控制语句


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论