PL/SQL程序流程控制以及exception

DDL语句在PL/SQL里面的使用
eg:
begin
   execture immediaate 'create table T(nnn varchar2(20) default ''aaaa'')';
end;--利用两个''来定义字符串


PL/SQL流程控制
1:if条件控制
1 if.......then
if(条件p) then 基本语句段;
end if;
2 if......then....else
if(条件p) then 基本语句段1;
  elsif(条件) then  基本语句段2;
     else 语句段3;
end if;
3 还可以进行多层if语句的嵌套。

2循环

eg:
1  declare
    i binary_integer := 1;
   begin
     loop
         dbms_output.put_line(i);
          i := i+1;
         exit when(i>=11);
      end loop;
   end;(相当于do...while语句)

2   declare
    i binary_integer := 1;
   begin
     while i<11 loop
         dbms_output.put_line(i);
          i := i+1;
         exit when(i>=11);
      end loop;
   end;(相当于while语句)

3 for.....loop
begin
   for k in 1..10 loop
     dbms_output.put_line(k);
   end loop;
  for k in reverse(逆序) 1..10 loop
     dbms_output.put_line(k);
   end loop;
end;

3 case选择控制
case e
   when e1 then 语句段一;
    when e2 then 语句段二;
    when e3 then 语句段三;
    .......
   [else 语句段;]
end case;



错误的处理
exception处理最长用的办法是创建日志表储存错误信息
eg:

create table errorlog
(
  id number primary key;
  errorcode number;
  essmsg varchar2(1024);
  errdate date
);

create sequence seq_errorlog_id start with 1 increment by 1;

declare.......
begin......
exception
when others then
rollback;
v_errorcode := sqlcode;
v_errmsg := sqlerrm;
insert into errorlog values(seq_errorlog_id,v_errorcode,v_errmsg,sysdate);
commit;
end;






猜你喜欢

转载自516948336.iteye.com/blog/1484763
今日推荐