10. end if; 11.end; 12./
二重条件分支 if – then – else
问题:编写一个过程,可以输入一个雇员名,如果该雇员的补助不是0就在原来的基础上增加100;如果补助为0就把补助设为200; Sql代码
1. create or replace procedure sp_pro6(spName varchar2) is 2. --定义
3. v_comm emp.comm%type; 4. begin
5. --执行
6. select comm into v_comm from emp where ename=spName; 7. --判断(注意不等于0是<>0) 8. if v_comm<>0 then
9. update emp set comm=comm+100 where ename=spName; 10. else
11. update emp set comm=comm+200 where ename=spName; 12. --空的加200还是null 13. end if; 14.end; 15./
多重条件分支 if – then – elsif – then
问题:编写一个过程,可以输入一个雇员编号,如果该雇员的职位是PRESIDENT就给他的工资增加1000,如果该雇员的职位是MANAGER就给他的工资增加500,其它职位的雇员工资增加200。 Sql代码
1. create or replace procedure sp_pro6(spNo number) is 2. --定义
3. v_job emp.job%type; 4. begin
5. --执行
6. select job into v_job from emp where empno=spNo; 7. if v_job='PRESIDENT' then
8. update emp set sal=sal+1000 where empno=spNo; 9. elsif v_job='MANAGER' then
10. update emp set sal=sal+500 where empno=spNo; 11. else
12. update emp set sal=sal+200 where empno=spNo; 13. end if; 14.end; 15./
循环语句 –loop
是pl/sql中最简单的循环语句,这种循环语句以loop开头,以end loop结尾,这种循环至少会被执行一次。
案例:现有一张表users,表结构如下: 用户id | 用户名 |
请编写一个过程,可以输入用户名,并循环添加10个用户到users表中,用户编号从1开始增加。 Sql代码
1. create or replace procedure sp_pro6(spName varchar2) is 2. --定义 :=表示赋值
3. v_num number:=1; 4. begin 5. loop
6. insert into users values(v_num,spName); 7. --判断是否要退出循环 8. exit when v_num=10; 9. --自增
10. v_num:=v_num+1; 11. end loop; 12.end; 13./
循环语句 –while循环
基本循环至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环体语句,while循环以while...loop开始,以end loop结束。 案例:现有一张表users,表结构如下: 用户id 用户名
问题:请编写一个过程,可以输入用户名,并循环添加10个用户到users表中,用户编号从11开始增加。 Sql代码
1. create or replace procedure sp_pro6(spName varchar2) is 2. --定义 :=表示赋值