oracle if控制语句经典实例及详解

上传人:飞*** 文档编号:39951027 上传时间:2018-05-21 格式:DOC 页数:3 大小:31.50KB
返回 下载 相关 举报
oracle if控制语句经典实例及详解_第1页
第1页 / 共3页
oracle if控制语句经典实例及详解_第2页
第2页 / 共3页
oracle if控制语句经典实例及详解_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《oracle if控制语句经典实例及详解》由会员分享,可在线阅读,更多相关《oracle if控制语句经典实例及详解(3页珍藏版)》请在金锄头文库上搜索。

1、 OracleOracle 条件分支语句使用案例条件分支语句使用案例pl/sql 中提供了三种条件分支语句 if-then,if-then-else,if- then-elsif-else。这里需要注意一个细节(细节决定成败):elsif 而不 是 elseif。 一:简单的条件判断:if-then 案例 1:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于 2000,就给该雇员工资增加 10%。 create or replace procedure sp_p2(spName varchar2) is v_sal emp.sal%type; begin select sal into

2、v_sal from emp where ename=spName; if v_sal exec sp_p2(SMITH);-调用存储过程旧工资为:880 新工资为:968PL/SQL procedure successfully completed二:二重条件分支 if-then-else 案例 3:编写一个过程,可以输入一个雇员名如果该雇员的补助不是 0,就 在原来的基础上增加 100;如果补助为零设为 200.create or replace procedure sp_p2(spName varchar2) is v_comm m%type; begin select comm int

3、o v_comm from emp where ename=spName; if v_comm0 then update emp set comm=comm+100 where ename=spName; else update emp set comm=comm+200 where ename=spName; end if; end; 注:此案例有只能更新为 0 或者大于零的,null 的不能修改。案例 4:弥补案例 3 的不足,此案例 comml 列为空的也可以进行修改。create or replace procedure sp_p2(spName varchar2) is v_comm

4、 m%type; begin select comm into v_comm from emp where ename=spName; if v_comm is null or v_comm = 0 then update emp set comm=nvl(comm,0)+100 where ename=spName; else update emp set comm=comm+200 where ename=spName; end if; end; 注:nvl(comm,0)当 comm 为空时返回零,不为空则返回 comm 值。 三::重条件分支 if-then-elsif-else。 案

5、例 5:编写一个过程,可以输入一个雇员编号,如果该雇员的职位是 persident 就给他的工资增加 1000,如果该雇员的职位是 MANAGER 就给他的工 资增加 500,其他职位的雇员工资增加 200.create or replace procedure sp_p3(spNo number) is v_job emp.job%type; begin select job into v_job from emp where empNo=spNo; if v_job=PERSIDENT then update emp set sal=sal+1000 where empno=spNo; e

6、lsif v_job=MANAGER then update emp set sal=sal+500 where empno=spNo; elseupdate emp set sal=sal+200 where empno=spNo; end if; end; 四:循环体 案例 1:最简单的循环 loop,以 loop 开头,以 end loop 结束。这种循环 至少执行一次。建一张表 users:用户 id,用户名 userName。编写一个过程, 可输入用户名,并循环的添加 10 个用户到 users 表中,用户编号从 1 开始。 (:= 表示赋值) (1)create table use

7、rs(userNO number,userName varchar2(40); (2)create or replace procedure sp_p4(spNname number) 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; (3)exec sp_p4(xx);-调用存储过程案例 2:(while.loop/end loop 结束)编写一个过程,可输入用户名, 并循环的添加 10 个用户到 users 表中,用户编号从 11 开始。现有一张表 users:用户 id,用户名。 (1)create or replace procedure sp_p5(spName varchar2) is v_num number:=11; begin while v_num20 loop insert into users values(v_num,spName); v_num:=v_num+1; end loop; end; end;(2)exec sp_p5(xxb);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号