码迷,mamicode.com
首页 > 其他好文 > 详细

存储过程和存储函数和触发器示例

时间:2014-07-03 10:47:30      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   数据   cti   

1、存储过程示例:为指定的职工在原工资的基础上长10%的工资

SQL> create or replace procedure raiseSalary(empid in number)
 
    as
 
    pSal emp.sal%type;
 
    begin
 
    select sal into pSal from emp where empno=empid;
 
    update emp set sal = sal*1.1 where empno=empid;
 
    dbms_output.put_line(员工号: || empid || 涨工资前
 
     || psal || 涨工资后 || psal*1.1);
 
    end;
 
   /
 
Procedure created
 
SQL> set serveroutput on
 
SQL> exec raisesalary(7369);

员工号:7369涨工资前

 

800涨工资后880

 

PL/SQL procedure successfully completed

 

2、存储函数示例:查询某职工的年收入。

SQL> /**   查询某职工的总收入   */

create or replace function queryEmpSalary(empid in number)
 
    return number
 
    as
 
    pSal number; --定义变量保存员工的工资
 
    pComm number; --定义变量保存员工的奖金
 
   begin
 
   select sal,comm into psal,pcomm from emp where empno = empid;
 
   return psal*12+nvl(pcomm,0);
 
   end;
 
   /
 
Function created
 
SQL> declare
 
    v_sal number;
 
    begin
 
    v_sal:=queryEmpSalary(7934);
 
    dbms_output.put_line(salary is:|| v_sal);
 
    end;
 
    /
 
salary is:15600
 
PL/SQL procedure successfully completed
 
SQL> begin
 
    dbms_output.put_line(salary is:|| queryEmpSalary(7934));
 
    end;
 
    /
 
salary is:15600
 
PL/SQL procedure successfully completed

 

3、创建触发器示例1:限制非工作时间向数据库插入数据

SQL> create or replace
 
    trigger securityEmp
 
    before insert on emp
 
    declare
 
    begin
 
    if to_char(sysdate,day)in(星期四,星期六,星期日)
 
    or to_number(to_char(sysdate,hh24))not between 8 and 18 then 
 
    raise_application_error(-20001,不能在非工作时间插入数据。);
 
    end if;
 
   end;
 
   /
 
Trigger created

 

4、创建触发器示例2:确认数据(检查emp表中sal 的修改值不低于原值)

SQL> create or replace trigger checkSal
 
    before update of sal on emp
 
    for each row
 
    declare
 
    begin
 
    if :new.sal<:old.sal then
 
    raise_application_error(-20001,更新后的薪水比更新前小);
 
    end if;
 
    end;
 
   /
 
Trigger created

 

 

存储过程和存储函数和触发器示例,布布扣,bubuko.com

存储过程和存储函数和触发器示例

标签:style   blog   http   color   数据   cti   

原文地址:http://www.cnblogs.com/smart9595/p/3818202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!