PLSQL语言基础汇编.pptVIP

  • 8
  • 0
  • 约8.45千字
  • 约 52页
  • 2017-06-30 发布于湖北
  • 举报
PLSQL语言基础汇编

Case语句结构2:复杂型 Case when 条件1 then 语句1; when 条件2 then 语句2; … when 条件n then 语句n; else 语句n+1; End case; DECLARE v_sal emp.sal%type; v_increment NUMBER(4); v_empno emp.empno%type; BEGIN v_empno:=x; SELECT sal INTO v_sal FROM emp WHERE empno=v_empno; CASE WHEN v_sal1000 THEN v_increment:=200; WHEN v_sal2000 THEN v_increment:=150; WHEN v_sal3000 THEN v_increment:=100; ELSE v_increment:=50; END CASE; UPDATE emp SET sal=sal+v_increment WHERE empno=v_empno; END; 由于PL/SQL中的逻辑运算结果有TRUE,FALSE和NULL三种,因此在进行选择条件判断时,要考虑条件为NULL的情况。例如,下面两个程序,如果不考虑条件为NULL的情况,则运行结果是一致的,但是若考虑条件为NULL的情况,则结果就不同了。 为了避免条件为NULL时出现歧义,应该在程序中进行条件是否为NULL的检查。 循环结构 Loop循环 While循环 For循环 Loop循环 Loop 循环体; if 条件 then exit; end if; End loop; Loop 循环体; exit when 条件; End loop; while循环 while 循环条件 loop 循环体 End loop; For循环 For 循环变量 in 初值..终值 loop 循环体 End loop; For 循环变量 in reverse 初值..终值 loop 循环体 End loop; 举例 DECLARE i INTEGER:=1; s INTEGER:=0; BEGIN WHILE i=100 LOOP s:=s+i; i:=i+1; END LOOP; DBMS_OUTPUT.PUT_LINE(1+2+...+100= || s); END; DECLARE i INTEGER:=1; s INTEGER:=0; BEGIN LOOP s:=s+i; i:=i+1; EXIT WHEN i100; END LOOP; DBMS_OUTPUT.PUT_LINE(1+2+...+100= || s); END; DECLARE s INTEGER:=0; BEGIN For i in 1..100 loop s:=s+i; END LOOP; DBMS_OUTPUT.PUT_LINE(1+2+...+100= || s); END; 异常处理 为了提高应用程序的健壮性,开发人员必须考虑程序可能出现的各种错误,并进行相应的处理。在Oracle中,为了处理PL/SQL应用程序的各种错误,Oracle提供了三种类型的异常。 (1)预定义异常:用于处理常见的Oracle错误 (2)非预定义异常:用于处理预定义异常所不能处理的Oracle错误 (3)自定义异常:用于处理于Oracle错误无关的其他情况 异常处理代码: 在程序的最后加上: EXCEPTION WHEN 异常情况名 THEN 异常处理代码 WHEN 异常情况名 THEN 异常处理代码 …… WHEN OTHERS THEN 异常处理代码 预定义异常 DECLARE x NUMBER; BEGIN x:= a123; EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE(数据类型错误); END; declare e_no number(4); e_name varchar2(10); e_sal number(7

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档