- --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);
-
- 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教程。