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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权所有,转载请注明出处 本文出自:
分享道版权所有,欢迎转载,转载请注明出处,谢谢
收藏
关注
评论
查看全文
  • 相关阅读:
    阿里云 linux centos7安装tomcat
    定义全局的输入框获取焦点指令vfocus
    vue按enter键刷新页面 使用@submit.native.prevent阻止表单默认提交,添加在form标签上
    vue按键修饰符@keyup.enter.native
    阿里云 linux centos7中安装redis
    CRON表达式
    python定时执行nutch爬取任务
    Spring中设置bean作用域
    Cassandra 安装
    cassandra入门
  • 原文地址:https://www.cnblogs.com/hoojo/p/2035393.html
  • Copyright © 2011-2022 走看看