韩顺平oracle笔记(自己修改精华并添加触发器内容) 下载本文

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. --定义 :=表示赋值