--创建函数

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. python (10) 文件夹的创建与文件夹的删除

    有时需要在代码中对文件或者文件夹 进行删除,或者添加 导入的包:import os,shutil 新建文件夹 import os,shutil path = os.getcwd() #获得当前目录 # ...

  2. Uvision5不能进行软件仿真

    Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) ...

  3. You need tcl 8.5 or newer in order to run the Redis test

    安装Redis时候make test出现的 , 不用下什么tcl8.5再tar了 , 直接yum install tcl就好.

  4. Ecshop(二次开发) - 后台添加左侧菜单导航

    1.链接地址:修改 admin\includes\inc_menu.php 文件. $modules['17_syn_data']['view_syn']        =    'synchroni ...

  5. CentOS yum安装和配置MySQL(转载)

    From:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html] 一.MySQL简介 说到数据库,我们大多想到 ...

  6. C#导出带有格式的Excel(列宽,合并单元格,显示边框线,加背景颜色等)

    源地址:http://blog.sina.com.cn/s/blog_74f702e60101au55.html 导出excel相关设置:http://blog.csdn.net/wanmingtom ...

  7. [Flex] Accordion系列-动态添加或删除Accordion容器中项目

    <?xml version="1.0" encoding="utf-8"?> <!--Flex中如何使用addChild()和removeCh ...

  8. JAVA中日期处理

    一.日期和long类型数据的相互转换 public class Hello { public static void main(String[] args) throws Exception { // ...

  9. DataTable.select() 返回 DataTable

    DataTable.select() 默认返回值为 DataRow[]数组 代码来自网络: /**/ /// <summary> /// 执行DataTable中的查询返回新的DataTa ...

  10. ElasticSearch 常用的查询过滤语句

    query 和  filter 的区别请看: http://www.cnblogs.com/ghj1976/p/5292740.html Filter DSL term 过滤 term主要用于精确匹配 ...