zoukankan      html  css  js  c++  java
  • Oracle笔记 十一、PL/SQL函数和触发器

    --创建函数
    create or replace function add_sal(sSal number)
           return number
    is
    begin
      if (sSal > 5000) then
        return sSal + 51;
      elsif (sSal > 3000) then
        return sSal + 111;
      else
        return sSal + 222;
      end if;
    end;
     
    select sal, add_sal(sal) from emp;
     
     
    --触发器
    create table deptLog(
           uName varchar2(20),
           action varchar2(20),
           dTime date
    );
     
    --创建触发器
    --for each row 可以触发多条,当你的语言影响多少条记录就会触发多少次
    create or replace trigger trig_dept2
      after insert or delete or update on dept2/* for each row*/
    begin
      if inserting then
        insert into deptLog values(user, 'insert', sysdate);
      elsif updating then
        insert into deptLog values(user, 'update', sysdate);
      elsif deleting then
        insert into deptLog values(user, 'delete', sysdate);
      end if; 
    end;
     
    select * from dept2;
    select * from deptLog;
    insert into dept2 values(55, 'SOFTWARE', 'cic');
    update dept2 set loc = 'go' where deptno in(30);
    delete dept2 where deptno = 55;
     
    --触发器
    create or replace trigger trig_emp
      after update on dept for each row
    begin
      update emp set emp.deptno =: new.deptno where emp.deptno = :old.deptno;
    end;
     
    update dept set deptno = 11     where deptno = 10;
    select * from emp;
     
    ---语句级触发器
    create or replace trigger trg_ins_dept2
    before insert
    on dept2
    begin
         if user not in('SCOTT') then      
           raise_application_error(-20001, '只有SCOTT才能修改该表!');
         end if;
    end;
     
    禁用、启用触发器
    alter trigger tgr_Name disable | enable;
    alter table tableName disable all trigger | enable all trigger;
  • 作者:hoojo
    出处:
    blog:http://blog.csdn.net/IBM_hoojo
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权所有,转载请注明出处 本文出自:
分享道版权所有,欢迎转载,转载请注明出处,谢谢
收藏
关注
评论
查看全文
  • 相关阅读:
    SpringCloudAlibaba学习笔记-简介
    SpringCloudAlibaba学习笔记-目录
    go语言学习笔记-目录
    go语言学习笔记-配置idea开发go编程语言并配置导入本地包
    go语言学习笔记-Windows10开发环境安装和环境变量配置
    我与阿里云的日常-QuickBI开发教程
    我与阿里云的日常-阿里云帐号注册
    消息队列 RabbitMq(6)高级特性
    消息队列 (5) RabbtMQ SpringBoot整合
    Nginx的安装和使用
  • 原文地址:https://www.cnblogs.com/hoojo/p/2035393.html
  • Copyright © 2011-2022 走看看