--创建函数

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;

Oracle笔记 十一、PL/SQL函数和触发器的更多相关文章

  1. Oracle 11g 的PL/SQL函数结果缓存

    模拟Oracle性能诊断艺术做了两个试验样品.书上说的不承担RELIES_ON.果缓存的失效操作(result_cache RELIES_ON(test1,test2)).试验证明不正确,函数f1() ...

  2. Oracle数据库之PL/SQL触发器

    Oracle数据库之PL/SQL触发器 1. 介绍 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是 ...

  3. Oracle数据库之PL/SQL过程与函数

    Oracle数据库之PL/SQL过程与函数 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据 ...

  4. ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引

    WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行 ...

  5. ORACLE PL/SQL编程之触发器

    8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INS ...

  6. oracle PL/SQL(procedure language/SQL)程序设计(续集)之PL/SQL函数

    PL/SQL函数 examples:“ 构造一个邮件地址 v_mailing_address := v_name||CHR(10)||                                 ...

  7. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  8. Oracle数据库之PL/SQL程序设计简介

    PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...

  9. oracle系列(四)PL/SQL

    过程,函数,触发器是PL/SQL编写的,存储在oracle中的.PL/SQL是非常强大的数据库过程语言. PL/SQL优点:性能,模块化,网络传输量,安全性缺点:移植性不好 简单分类:块:过程,函数, ...

随机推荐

  1. PLSQL_性能优化系列15_Oracle Explain Plan解析计划解读

    2014-12-19 Created By BaoXinjian

  2. uva 437 巴比伦塔(DAG上dp)

    巴比伦塔 紫书P269 看完紫书,终于可以自己写一个dp了 :) [题目链接]巴比伦塔 [题目类型]DAG上dp &题意: 有n种立方体 n<=30,每种有无穷个,要求选一些立方体摞成一 ...

  3. Laravel5 cookie和session设置

    Cookies Laravel会加密所有已创建的cookie信息,并附加上授权码,当客户端擅自修改cookie信息时,该cookie将被废弃,从而保证安全性. 获取一个指定的cookie值 $valu ...

  4. 使用JMeter创建FTP测试计划

    FTP服务主要提供上传和下载功能.有时间需要我们测试服务器上传和下载的性能.在这里我通过JMeter做一个FTP测试计划的例子. 当然,JMeter官方网站的用户手册也有例子,但由于版本较早,我也算是 ...

  5. JAVASE 打印输出--------01

    public class Demo01 { public String a1; public int a2; public Demo01(String a, int i) { a1 = a; a2 = ...

  6. SQL递归查询

    WITH cte AS ( AS lvl FROM Department UNION all FROM cte c inner join Department d ON c.Pid = d.Id ) ...

  7. jquery mobile转场时加载js失效(转)

    jquery mobile拦截了所有的http请求,并使用ajax请求取代传统的http.请求发出后,框架会将请求的内容插入到页面中data- role="page"的部分,取代原 ...

  8. springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)

    首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...

  9. ArcGIS Engine 图层裁剪 Clip的实现方法

    方法一, 图层对图层裁剪,输出图层 ILayer pLayer; IFeatureLayer pFeatureLayer; IFeatureClass pFeatureClass; IWorkspac ...

  10. document.write('<script type=\"text/javascript\"><\/script>')

    document.write('<script type=\"text/javascript\"><\/script>')