:new --为一个引用最新的列值;
:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;

系统中的触发器实例:

create or replace trigger JBPM.TIB_DEPLOYBYMOVEPAPER before //before表示在操作完成前触发,                                                                                                             after表示在完成后触发

insert //发生插入数据操作触发
on JBPM.DEPLOYBYMOVEPAPER for each row //指定触发器每行触发一次
declare
    integrity_error exception; //用户自定义错误
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;
    row_count number;
    max_num deploybymovepaper.num%type; //根据表的字段定义变量类型
    zero_today deploybymovepaper.num%type;

begin
-- Column "ID" uses sequence SEQUENCE_38
case
when inserting then //SQL语句只能使用:new特殊变量
select SEQUENCE_38.NEXTVAL INTO :new.ID from dual;//主键自增
zero_today :='0391'||to_char(sysdate,'yymmdd')||lpad(to_char(0),4,'0');//lpad函数定义字符串长度                                                                                                               为4不足时用0补全
    select count(*) into row_count from deploybymovepaper;
    if row_count = 0 then
        max_num:=zero_today;//:=给变量赋值
    else
      select max(num) into max_num from deploybymovepaper;
    end if;
    if max_num<zero_today then
        max_num:=zero_today;
    end if;
    if :new.num is null then
    :new.num:=lpad(to_char(to_number(max_num)+1),14,'0'); //递增编号,有14为数字组成
    end if;
when updating('num') then//:new、:old都可以用
if :new.num!=:old.num then
      :new.num:=:old.num;
end if;
end case;

-- Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg); //抛出异常语句
end;
/

查看某个表的触发器

select   *   from   all_triggers
where   table_name   =upper( 'tbname ')

转载于:https://www.cnblogs.com/zwl24/archive/2012/06/09/2542866.html

Oracle触发器和new、old特殊变量相关推荐

  1. oracle 触发器管理(以及行级触发器中有两个伪变量 :new 与 :old 的使用方法)(三个谓词inserting、deleting、updating的使用方法)

    oracle触发器管理: 1.概念 2.建立一个简单的触发器: 3.触发器的作用 4.触发条件 a.触发事件 b.触发时间 c.触发级别 d.触发限制 e.触发对象 5.创建及使用触发器 6.触发器分 ...

  2. SQL server与Oracle触发器的创建与使用

    SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...

  3. Oracle触发器和MySQL触发器之间的区别

    原文链接:http://blog.csdn.net/a19881029/article/details/37820363 --------------------------------------- ...

  4. Oracle 触发器(tigger)4

    Oracle 触发器(tigger) 1 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某 ...

  5. oracle 停止触发器语句,oracle触发器语句

    ORACLE中触发器的判断IF语句 加一行 NULL 即可例如:SQL> DECLARE 2 testvalue INT; 3 BEGIN 4 testvalue := 200; 5 6 IF ...

  6. 十一、Oracle 触发器

    一.Oracle 操作集 二.Oracle 数据类型 三.Oracle 函数 四.Oracle 视图 五.Oracle 序列 六.Oracle 同义词 七.Oracle 索引 八.Oracle PL/ ...

  7. oracle触发器输出信息,插入后oracle触发器打印

    我刚开始学习触发器.我想在插入测试后给用户一个通知'插入成功'.插入后oracle触发器打印 这是我的代码. create table test (id number, name varchar2(3 ...

  8. oracle创建触发器的作用,Oracle触发器简介

    在学习Oracle之前,我听说过触发器,但是我从未在工作中使用过触发器. 我认为触发器是一件神秘而困难的事,因此我没有认真研究它. 我了解了赵老师今晚谈论的触发因素,发现触发因素并不像我想的那样神秘. ...

  9. Oracle 触发器调用存储过程|转||待研究|

    Oracle触发器调用存储过程资料收集整理 触发器:Trigger 存储过程:Stored Procedure // ******************** 收集1 **************** ...

  10. oracle触发器高级教程

    [转自]http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7004.htm#i2153503 CREA ...

最新文章

  1. 大众可视化:精美酷炫的可视化图表,自动生成!
  2. php fastcgi_param,nginx-404与root指令 fastcgi_param 指令
  3. [云炬创业学笔记]第一章创业是什么测试4
  4. springboot从控制器请求至页面时js失效的解决方法
  5. Java并发编程实战~ReadWriteLock~
  6. 使用CSS按比例调整图像大小? [重复]
  7. apache php mysql_PHP环境搭建(php+Apache+mysql)
  8. 计算机无法安装dx11,Windows10系统DX11正确的安装路径是什么?
  9. 511遇见易语言列表框去重复项目到列表框
  10. 关于EnableViewState属性
  11. 在xml添加红色的星号android,在文本输入框中输入编辑文本(红色星号)的必填符号...
  12. 道法演讲之马云从事教育
  13. PG据库备份与恢复实验 (PITR)
  14. F.巴啦啦能量 【尺取法】
  15. SCRUM Beta Day 1
  16. 起源于 Kettle 的新一代数据集成平台 Apache Hop 成为 Apache 顶级项目
  17. python飞机大战任务报告_Python飞机大战实战项目案例
  18. Kotlin学习(11)→抽象类、接口、接口代理
  19. MySQL调优之性能分析
  20. Windows 也有包管理工具?

热门文章

  1. thinkphp 框架自动加载原理_ThinkPHP5分析Part 1 基本框架流程
  2. 生成随机数放入整型数组怎么判断有没有重复_图的应用(1)-连通图的最小生成树(Prim算法和Kruskal算法)...
  3. java飞行器服务端_使用jvisualvm和飞行记录器分析Java程序cpu占用率过高
  4. linux vi 强制退出_linux的编辑大法
  5. void slove C语言什么意思,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  6. vim代码格式化自动加空格_vim格式化代码实际上就是 缩进代码, 命令是等号=
  7. python函数注释 参数 省略号_python – make函数在help()函数中有参数的省略号
  8. Php如何发出请求,PHP中如何发送HTTP请求?
  9. python用print函数打印皮卡丘_Python学习之print()函数
  10. 【源资讯 第37期】一个时代的终结 —— 再见, Flash !