[oracle]pl/sql --控制语句if..

--pl/sql学习第三章********************************************* 
--使用环境  oracle10.2 ;ide;pl/sql developer ;schema:scott; table:emp 
--控制语句 顺序 判断 循环 
--条件分支语句 
--1 if .. then end if  单一条件分支 
--2 if .. then ..else  end if  二重条件分支 
--3 if .. then .. elsif ..then...else ..end if  多重条件分支 
--每个结构给出一个案例作为参考
--案例1  编写一个带有条件分支的过程,输入员工号,如果工资低于2000就增加10%,查询条件皆为员工号
 
create or replace procedure l_pro1(lno number) is 
v_sal emp.sal%type; 
v_newsal emp.sal%type; 
v_name emp.ename%type; 
begin 
select ename,sal into v_name,v_sal from emp where empno=lno; 
dbms_output.put_line('员工'||v_name||'的工资是'||v_sal); 
--开始判断是否到2000元,怎么包含if语句块? 
if v_sal<=2000 then  
v_newsal:=v_sal*1.1; 
dbms_output.put_line('由于工资低于2000元,所以要张薪资到'||v_newsal); 
--进行更新操作 
update emp set sal=v_newsal where empno=lno; 
end if ; 
end;  
--案例2  二重条件分支 查询员工的补助原来有增加100 没有的直接给200
create or replace procedure l_pro2(lno number) is  
v_comm emp.comm%type; 
begin 
select comm into v_comm from emp where empno=lno; 
--判断语句 
if v_comm=0 then  
--注意等号的写法 
v_comm:=200; 
--打印和更新操作 
dbms_output.put_line('此员工原来没有补贴'); 
update emp set comm=v_comm where empno=lno; 
else  
dbms_output.put_line('此员工原来有补贴'||v_comm||'元'); 
v_comm:=100+v_comm; 
update emp set comm=v_comm where empno=lno;  
end if; 
end;
--案例3 多重条件分支 根据员工的不同职位加薪水,president加1000,manager加500,其他员工加200
create or replace procedure l_pro3(lno number) is 
v_sal emp.sal%type; 
v_job emp.job%type; 
begin  
select sal,job into v_sal,v_job from emp where empno=lno; 
--判断结构 
if v_job='PRESIDENT' then  
v_sal:=v_sal+1000; 
dbms_output.put_line('此员工'||lno||'加薪水后'||v_sal||'元'); 
update emp set sal=v_sal where empno=lno; 
--再次判断 
elsif v_job='MANAGER'  then  
v_sal:=v_sal+500; 
dbms_output.put_line('此员工'||lno||'加薪水后'||v_sal||'元'); 
update emp set sal=v_sal where empno=lno;  
else  
v_sal:=v_sal+200; 
dbms_output.put_line('此员工'||lno||'加薪水后'||v_sal||'元'); 
update emp set sal=v_sal where empno=lno;   
end if; 
end; 
--容易出错的几个地方
--tips:
--1 赋值号的写法‘ := ’不是‘=’
--2 等号和不等号 ‘=’和‘<>'
--3 if 最后一定要加 end if;
--4 elsif的写法 别写成 else if  
--5 数据类型要对应 比如说sal,job into v_sal,v_job 前后一定要匹配好
 
数据类型知晓,明白声明方法和语法结构之后,在学习各种语句之后就可以开始写自己的程序了。
部分引用自传智播客oracle教程。
 
 

本文出自 orangleliu笔记本 博客,请务必保留此出处​http://blog.csdn.net/orangleliu/article/details/38309421

你可能感兴趣的:(数据库)