您的位置:首页 > 数据库 > Oracle

oracle的控制结构

2013-06-13 20:23 357 查看
控制结构

条件分支语句

if-then

create or replace procedure  sp_pro(spName varchar2 )  is  

--定义

v_sal emp.sal%type;

begin

select sal into v_sal  from emp where ename=spName;

if v_sal<2000 then

update emp set sal=sal*1.1 where ename=spName;

end if;

end;
执行 exec sp_pro('SCOTT');

if-elsif-else

create or replace procedure sp_pro1(spNo number) is

v_job  emp.job%type;

begin

select job into v_job from emp where  empno=spNo;

if  v_job='PREDIENT' then

update emp set sal=sal+1000 where empno=spNo;

elsif v_job='MANAGER' then

update emp set sal=sal+500 where empno=spNo;

else

update emp set sal=sal+200 where empno=spNo;

end if;

end;

执行 exec sp_pro1(7788);

循环语句--loop

是pl/sql里最简单的循环语句,以loop开头,以end loop结尾,这种循环至少执行一次

编写一个过程,可以输入姓名,并循环添加十个用户到user表中,用户编号从1开始自增

create or replace procedure sp_pro5(name varchar2,password varchar2) is

v_num number:=1;

begin

loop

insert into users values(v_num,name,password);

exit when v_num=10;

v_num:=v_num+1;

end loop;

end;

执行 exex sp_pro5('haha','haha');

循环语句--while

create or replace procedure sp_pro5(name varchar2,password varchar2) is

v_num number:=11;

begin

while v_num<=20   loop

insert into users values(v_num,name,password);

v_num:=v_num+1;

end loop;

end;

顺序控制语句

goto  一般不建议使用

null语句不会执行任何操作,并且会直接将控制直接传到下一条语句,使用null的主要好处是可以提高pl/sql程序的可读性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: