plsql程序的基本写法及三种循环

来源:互联网 发布:最新淘宝好评返现违规 编辑:程序博客网 时间:2024/05/22 07:47
--打开屏幕显示开关(SQLPLUS中)--示例一set serveroutput on--num 是地址值,赋值时注意accept num prompt '请输入一个数字';declare--声明变量的区域pnum number:=&num;begin   --执行if语句进行条件判断  if pnum=0 then dbms_output.put_line('您输入的数字是0');  elsif pnum = 1 then dbms_output.put_line('您输入的数字是1');  elsif pnum = 2 then dbms_output.put_line('您输入的数字是2');  else dbms_output.put_line('其他数字');  end if;end;/--示例二(exit loop,推荐使用这种循环)set serveroutput ondeclare pnum number := 1;begin  LOOP    exit when pnum > 10;    dbms_output.put_line(pnum);    --由于plsql程序不支持自增的写法(i++),所以下面都是使用这种写法。    pnum := pnum+1;  end LOOP;end;/--示例三(for loop)set serveroutput ondeclare pnum number := 1;begin--这里是指从110来循环  for pnum in 1..10 loop    dbms_output.put_line(pnum);  end LOOP;end;/--示例四(while loop)set serveroutput ondeclare pnum number := 1;begin  while pnum <=10 LOOP  dbms_output.put_line(pnum);  pnum := pnum+1;  end LOOP;end;/--示例五(配合fetch来使用)set serveroutput ondeclare--光标(游标)的写法cursor cdis is select t.* from cfg_distributor t ;prow cfg_distributor%rowtype;begin     --打开光标     open cdis;     loop        --从光标cdis中抓取一行放入prow中。       fetch cdis into prow;       --这里的%notfound是光标的属性之一,默认取的是上次fetch的结果,所以fetch写在前面。如果前面没有fetch语句,则cdis%notfound为NULL,这个既不是TRUE也不是FALSE,所以不会退出循环,如果为NULL时也需要退出循环,可以这样写 (or cdis%notfound is null)尤其要注意。如果没有fetch到数据,则cdis%notfound为TRUE,退出循环。       exit when cdis%notfound;          dbms_output.put_line(prow.tano||'的销售商名称为'||prow.distributorname);     end loop;     --关闭光标     close cdis;end;/
原创粉丝点击