oracle的控制语句if和循环语句loop while for

pl/sql的控制结构
if-then if-then-else if-then-elsif-else

案例1:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该雇员工资增加10%

create or replace procedure mypro(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;

 

案例2 编写一个过程,可以输入一个雇员名,如果该雇员的补助不是0就在原来的基础上加100,如果为0则改为200

create or replace procedure mypro(spName varchar2) is 
v_comm emp.comm%type
begin
select comm into v_comm from emp where ename = spName;
if v_comm <> 0 then 
update emp set comm = comm+100 where ename = spName; 
else 
update emp set comm = comm+200 where ename = spName; 
end if;
end;

 

案例3:编写一个过程,可以输入一个雇员编号人,如果该雇员的职位是president就给他的工资增加1000,如果该雇员
的职位是manager就给他的工资增加500,其他职位的雇员工资增加200.

create or replace procedure mypro(spName number) is
v_job emp.job%type
begin 
select job into v_job from emp where empno=spNo;
if v_job='PRESIDENT' 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;

 

pl/sql循环语句

loop是最简单的循环语句,这种循环语句以loop开头,以end loop结尾,这种循环至少会被执行一次
案例1 现在有一张表,表结构为用户id和用户名

create or replace procedure mypro(spName varchar2) is
v_num number:=1;
begin 
loop
insert into users values(v_num,spName);
--判断是否要退出循环
exit when v_num=10;
v_num:=v_num+1;
end loop;
end;

 

while循环,至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环语句

create or replace procedure mypro(spName varchar2) is
v_num number:=11;
begin 
while v_num <= 20 loop
insert into users values(v_num,spName);
v_num:=v_num+1;
end loop;
end;

 

循环语句-for循环

begin
--只能按照1的步长不断增加
for i in reverse 1..10 loop
insert into users values(i,'hh');
end loop;
end;

 

转载于:https://www.cnblogs.com/dongzhuangdian/p/5798183.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值