zoukankan      html  css  js  c++  java
  • Oracle触发器

    触发器概念

    数据库触发器是一个与表相关的,存储的PL/SQL程序,没当一个指定的数据操作(insert, update, delete

    在指定的表中发出时。oracle自动的执行触发器中定义的语句序列

    第一个触发器:每当成功插入插入新员工后,自动打印成功插入新员工

       create trigger saynewemp 

       after  insert 

       on  emp

       declare

       begin

          dbm_output.put_line('成功插入新员工') 

        end

    平时用来测试的异常处理,我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把异常信息返回给调用的客户端。
    其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序

    RAISE_APPLICATION_ERROR 的声明:

    PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
    里面的错误代码和内容,都是自定义的。说明是自定义,当然就不是系统中已经命名存在的错误类别,是属于一种自定义事务错误类型,才调用此函数。error_number_in 之容许从 -20000 到 -20999 之间,这样就不会与 ORACLE 的任何错误代码发生冲突

    触发器的语法

    crrate  [ or replace] trigger  触发器名

    {before|after}

    {delete|insert|update[列名]}

    on 表名

    [declare]

    【 for   each  now[when (条件)]】

       plsql块

    [declare] 用于声明新变量

    DECLARE
       V_OP_TYPE varchar2(20);
    BEGIN
       IF deleting THEN
          V_OP_TYPE := 'DELETE';
       ELSIF updating THEN
          V_OP_TYPE := 'UPDATE';
       END IF;

      INSERT INTO R_CAPITALH(
      op_type     ,
      id         ,
     

    触发器分为语句级触发器和行级触发器

    语句级触发器针对表

    行级触发器针对行

     

  • 相关阅读:
    码到成功——Beta冲刺随笔 day 6
    团队作业第六次——Beta冲刺
    Beta冲刺 —— 6.2
    用户调查报告
    Beta冲刺 —— 总结随笔
    Beta冲刺——测试随笔
    Beta冲刺 —— 6.1
    Beta冲刺 —— 5.31
    Beta冲刺 —— 5.30
    Beta冲刺 —— 5.29
  • 原文地址:https://www.cnblogs.com/libaowen609/p/12819693.html
Copyright © 2011-2022 走看看