当前位置:数据库 > SQLServer >>

PL/SQL中的异常及PL/SQL中的控制语句

PL/SQL中的异常及PL/SQL中的控制语句
 
[/color][color=orange]SQL> set serveroutput on 
SQL> remark 控制语句 
SQL> remark 异常处理 
  www.zzzyk.com  
SQL> REMARK .......................................................... 
SQL> REMARK IF...THEN 的判断语法 
SQL> remark IF 条件标示式 WHEN 执行语句 END IF;  示例如下: 
SQL> REMARK 使用分组函数 条件判断的按列 
 
SQL> EDIT 
Wrote file afiedt.buf 
 
  1  DECLARE 
  2  SUMSAL SCOTT.EMP.SAL%TYPE; 
  3  BEGIN 
  4  SELECT SUM(SAL) INTO SUMSAL FROM SCOTT.EMP GROUP BY DEPTNO HAVING DEPTNO=30; 
  5  IF SUMSAL>5000 THEN 
  6  DBMS_OUTPUT.PUT_LINE('部门30的工资总额已经超过了预算,供'||SUMSAL); 
  7  END IF; 
  8* END; 
SQL> / 
部门30的工资总额已经超过了预算,供9400                                          
 
PL/SQL procedure successfully completed. 
 
SQL> REMARK 如果存在了分支条件,使用 IF...ELSIF..ELSE...END IF; 
SQL> REMARK 多元分支条件控制case 
SQL> REMARK 连接scott账户 
SQL> conn scott/tiger; 
Connected. 
SQL> DECLARE 
  2  THESAL EMP.SAL%TYPE; 
  3  BEGIN 
  4  SELECT SAL INTO THESAL FROM EMP WHERE EMPNO=7369; 
  5  CASE 
  6  WHEN THESAL<1000 THEN 
  7  DBMS_OUTPUT.PUT_LINE('低工资'); 
  8  WHEN THESAL>=1000 THEN 
  9  DBMS_OUTPUT.PUT_LINE('一般工资'); 
10  ELSE 
11  DBMS_OUTPUT.PUT_LINE('高工资'); 
12  END CASE; 
13  END; 
14  / 
 
PL/SQL procedure successfully completed. 
 
SQL> SET SERVEROUTPUT ON; 
SQL> REMARK 循环控制loop和end loop ; 之间的语句将无限次的执行,如果要跳出则使用exit; 
SQL> remark 语法:loop exit when 条件表达式;执行语句 ; end loop; 
SQL> remark 案例:累加的例子 
SQL> declare 
  2  cou int default 10; 
  3  result int :=0; 
  4  begin 
  5  DBMS_OUTPUT.PUT_LINE('循环开始.....'); 
  6  LOOP 
  7  EXIT WHEN COU>20; 
  8  result :=result + cou; 
  9  
10  DBMS_OUTPUT.PUT_LINE('进入循环..'||cou||'结果是:'||result); 
11  cou :=cou+1; 
12  end loop; 
13  dbms_output.put_line('最后的结果是:'||result); 
14  end; 
15  / 
循环开始.....                                                                   
进入循环..10结果是:10                                                          
进入循环..11结果是:21                                                          
进入循环..12结果是:33                                                          
进入循环..13结果是:46                                                          
进入循环..14结果是:60                                                          
进入循环..15结果是:75                                                          
进入循环..16结果是:91                                                          
进入循环..17结果是:108                                                         
进入循环..18结果是:126                                                         
进入循环..19结果是:145                                                         
进入循环..20结果是:165                                                         
最后的结果是:165                                                               
 
PL/SQL procedure successfully completed. 
 
SQL> remark 循环控制还可以使用for 循环和while 进行循环,这两种循环都是以loop循环作为基础 
SQL> remark 语法:for 变量 in 起始值..结束值 loop 执行语句;  end loop; 
SQL> remark 注:for循环的语法控制中,变量的定义不用声明,变量的边界值都会进入循环;....... 
 
案例: 
SQL> declare 
  2  result int :=0; 
  3  begin 
  4  dbms_output.put_line('循环开始...'); 
  5  for cou in 10..20 
  6  loop 
  7  result :=result+cou; 
  8  dbms_output.put_line('进入循环..'||cou||'结果是:'||result); 
  9  end loop; 
10  dbms_output.put_line('循环结束:'||result); 
11  end; 
12  / 
循环开始...                                                                     
进入循环.
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,