[oracle]pl/sql --控制语句if..
2014-07-31 00:29
471 查看
--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
相关文章推荐
- [oracle]pl/sql --控制语句if..
- ORACLE PL/SQL 实例精解之第四章 条件控制:if 语句
- Oracle PL/SQL之LOOP循环控制语句
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- Oracle PL/SQL之LOOP循环控制语句
- Oracle PL/SQL:IF语句的基本使用
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- Oracle:PL/SQL--流程控制(二)——case语句(注意:在Oracle 9i 后引入)
- Oracle:PL/SQL--流程控制(一)——条件结构:if-then、if-then-else、if-then-elsif
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- ORACLE PL/SQL编程之三:PL/SQL流程控制语句
- Oracle PL/SQL之LOOP循环控制语句
- Oracle PL/SQL之LOOP循环控制语句
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十二 编写控制结构语句
- 2012年1月4日 星期三(oracle读书笔记,PL/sql流程控制语句)
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句
- Oracle PL/SQL之LOOP循环控制语句
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)