Oracle流程控制示例

/*if*/
declare 
  v_fenju nvarchar2(10);
begin 
  select enter.fenjuid into v_fenju from enterpriseinfo enter 
  where enter.enterprisecode='4302010005';
  if v_fenju='110000' then 
     dbms_output.put_line('隶属北京公安分局');
  elsif v_fenju='120000' then
        dbms_output.put_line('隶属天津公安分局');
  else 
        dbms_output.put_line('未知所属');
  end if;
end;
/*case1*/
declare 
  v_fenju nvarchar2(10);
begin
  select enter.fenjuid into v_fenju from enterpriseinfo enter 
  where enter.enterprisecode='4302010005';
  case 
        when v_fenju='110000' then 
             dbms_output.put_line('隶属北京公安分局');
        when v_fenju='120000' then
             dbms_output.put_line('隶属天津公安分局');
        else
             dbms_output.put_line('未知所属');
  end case;
end;
/*case2*/
declare 
  v_fenju nvarchar2(10);
begin
  select enter.fenjuid into v_fenju from enterpriseinfo enter 
  where enter.enterprisecode='4302010005';
  case v_fenju
        when '110000' then 
             dbms_output.put_line('隶属北京公安分局');
        when '120000' then
             dbms_output.put_line('隶属天津公安分局');
        else
             dbms_output.put_line('未知所属');
  end case;
end;
/*loop*/
declare 
  v_i number :=1;
  v_s number :=0;
begin
  loop
      exit when v_i>100;
      v_s:=v_s+v_i;
      v_i:=v_i+1;
  end loop;
  dbms_output.put_line(v_s);
end;
/*while loop*/
declare 
  v_i number :=1;
  v_s number :=0;
begin
  while v_i<=100 loop
        v_s:=v_s+v_i;
        v_i:=v_i+1;
  end loop;
  dbms_output.put_line(v_s);
end;
/*for loop*/
declare
      v_s number :=0;
begin
      for v_i in 1..100 loop
          v_s:=v_s+v_i;
      end loop;
      dbms_output.put_line(v_s);
end;
/*above example is display 1+2+3+...+100*/
/*nesting loop display prime number between 1 and 100*/
declare 
      v_m number:=1;--start
      v_i number;
      v_n number:=0;--id
begin
      while v_m<100 loop
            v_i:=2;
            loop
                if mod(v_m,v_i)=0 then
                   v_i:=0;
                   exit;
                end if;
                v_i:=v_i+1;
                exit when v_i>v_m-1;
            end loop;
            if v_i>0 then
               v_n:=v_n+1;
               dbms_output.put_line(v_n || ' '|| v_m);
            end if;
            v_m:=v_m+2;
      end loop;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值