--创建函数

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_性能优化系列04_Oracle Optimizer优化器

    2014-09-25 Created By BaoXinjian

  2. sublime代码片段功能

    tools - > developer - > new snippet有了这个,你就可以通过iu这两个键,直接弄出自己的模板了,这就很方便了,不用在复制粘贴了.上是代码模板,下面是快捷键, ...

  3. 转载__UI之Frgment

    http://www.cnblogs.com/plokmju/p/3239265.html 前言 开门见山开篇名义,本篇博客将讲解一下Android中Fragment的内容,必要的地方会提供相应的演示 ...

  4. jquery.form.js详细讲解

    现在大家在在表单提交的时候都不流行中间页面做跳转(比如发布成功的提示页面),或者说这样做会降低用户体验.所以一般都是采用ajax来提交,能看到这个页面的朋友,想必对ajax提交表单已经是很熟悉了. 如 ...

  5. 设置oracle_home

    set ORACLE_HOME=F:\app\rh\product\11.2.0\dbhome_1

  6. 无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

    原文链接:http://www.cnblogs.com/IT-Bear/archive/2012/01/04/2311546.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET S ...

  7. C++学习39 异常处理入门(try和catch)

    编译器能够保证代码的语法是正确的,但是对逻辑错误和运行时错误却无能为力,例如除数为 0.内存分配失败.数组越界等.这些错误如果放任不管,系统就会执行默认的操作,终止程序运行,也就是我们常说的程序崩溃( ...

  8. 【转】深入理解Java:注解(Annotation)自定义注解入门

    http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 元注解: 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准的me ...

  9. Delphi ServerSocket,ClientSocket示例

    Delphi ServerSocket,ClientSocket示例 2008-05-09 16:20 Delphi TServerSocket,TClientSocket实现传送文件代码 1.建立两 ...

  10. python 之编码问题详解

    前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...