濮阳杆衣贸易有限公司

主頁 > 知識庫 > oracle監(jiān)控某表變動觸發(fā)器例子(監(jiān)控增,刪,改)

oracle監(jiān)控某表變動觸發(fā)器例子(監(jiān)控增,刪,改)

熱門標簽:騰訊地圖標注要費用嗎 電渠外呼系統(tǒng) 高德地圖標注公司名字大全 N個你智能電銷機器人 外呼電話系統(tǒng)用卡嗎 廣東營銷智能外呼系統(tǒng)商家 七日殺a19.5全地圖標注 車瑪仕極限運動場所地圖標注 地圖標注怎么保存

使用oracle觸發(fā)器 實現(xiàn)對某個表的增改刪的監(jiān)控操作,并記錄到另一個表中。

代碼:

復制代碼 代碼如下:

create or replace trigger test_trigger 
  before insert or update or delete on test_table 
  for each row 
declare 
  v_id        varchar2(30); 
  v_bdlb      varchar2(1); 
  v_jgdm      VARCHAR2(12); 
  v_jgmc      VARCHAR2(60); 
  v_gajgmc    VARCHAR2(60); 
  v_gajgwsmc  VARCHAR2(30); 
  v_jz        VARCHAR2(30); 
  v_ksdwsdwmc VARCHAR2(30); 
begin 
  /* 
    插入時往歷史表中存放的是新插入的數(shù)據(jù). 
    修改時往歷史表中存放的是修改后的數(shù)據(jù). 
    刪除時往歷史表中存放的是刪除之前的數(shù)據(jù). 
  */ 
  select org_id_s.nextval into v_id from dual; -- 利用seq生成主鍵 
  v_jgdm     := :new.row_id; 
  v_jgmc     := :new.dept_name; 
  v_gajgmc   := :new.dept_name; 
  v_gajgwsmc := :new.bmjc; 
  v_jz       := substr(v_jgdm, 7, 2); 
  if '2' = :new.depttype then 
    v_ksdwsdwmc := 'shiju'; 
  else 
    if '03' = v_jz then 
      v_ksdwsdwmc := 'zhi'; 
    elsif '05' = v_jz then 
      v_ksdwsdwmc := 'xing'; 
    elsif '51' = v_jz then 
      v_ksdwsdwmc := 'she'; 
    else 
      v_ksdwsdwmc := 'qita'; 
    end if; 
  end if; 

  if inserting then 
    v_bdlb := '1'; 
    insert into test_table_h 
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc) 
    values 
      (v_id, 
       v_bdlb, 
       v_jgdm, 
       v_jgmc, 
       v_gajgmc, 
       v_gajgwsmc, 
       v_jz, 
       v_ksdwsdwmc); 
  elsif updating then 
    v_bdlb := '2'; 
    insert into test_table_h 
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc) 
    values 
      (v_id, 
       v_bdlb, 
       v_jgdm, 
       v_jgmc, 
       v_gajgmc, 
       v_gajgwsmc, 
       v_jz, 
       v_ksdwsdwmc); 
  else 
    v_bdlb     := '3'; 
    v_jgdm     := :old.row_id; 
    v_jgmc     := :old.dept_name; 
    v_gajgmc   := :old.dept_name; 
    v_gajgwsmc := :old.bmjc; 
    v_jz       := substr(v_jgdm, 7, 2); 
    if '2' = :old.depttype then 
      v_ksdwsdwmc := 'shiju'; 
    else 
      if '03' = v_jz then 
        v_ksdwsdwmc := 'zhi'; 
      elsif '05' = v_jz then 
        v_ksdwsdwmc := 'xing'; 
      elsif '51' = v_jz then 
        v_ksdwsdwmc := 'she'; 
      else 
        v_ksdwsdwmc := 'qita'; 
      end if; 
    end if; 
    insert into test_table_h 
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc) 
    values 
      (v_id, 
       v_bdlb, 
       v_jgdm, 
       v_jgmc, 
       v_gajgmc, 
       v_gajgwsmc, 
       v_jz, 
       v_ksdwsdwmc); 
  end if; 
end;

您可能感興趣的文章:
  • Oracle中觸發(fā)器示例詳解
  • 詳解oracle中通過觸發(fā)器記錄每個語句影響總行數(shù)
  • Oracle觸發(fā)器trigger詳解
  • Oracle觸發(fā)器用法實例詳解
  • Oracle創(chuàng)建主鍵自增表(sql語句實現(xiàn))及觸發(fā)器應用
  • Oracle中游標Cursor基本用法詳解
  • Oracle存儲過程游標用法分析
  • Oracle顯示游標的使用及游標for循環(huán)
  • 快速學習Oracle觸發(fā)器和游標

標簽:棗莊 來賓 玉樹 長沙 大興安嶺 遼寧 贛州 蘇州

巨人網(wǎng)絡通訊聲明:本文標題《oracle監(jiān)控某表變動觸發(fā)器例子(監(jiān)控增,刪,改)》,本文關鍵詞  oracle,監(jiān)控,某表,變動,觸發(fā)器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle監(jiān)控某表變動觸發(fā)器例子(監(jiān)控增,刪,改)》相關的同類信息!
  • 本頁收集關于oracle監(jiān)控某表變動觸發(fā)器例子(監(jiān)控增,刪,改)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    义马市| 平度市| 湘西| 宽甸| 尼玛县| 佛冈县| 上杭县| 邮箱| 北流市| 桂东县| 三河市| 信阳市| 绥阳县| 泗洪县| 哈密市| 和龙市| 遂平县| 武定县| 周宁县| 修水县| 同仁县| 闻喜县| 和林格尔县| 横山县| 子洲县| 泸定县| 天全县| 澄迈县| 睢宁县| 莆田市| 台东市| 盘锦市| 赤水市| 霍山县| 井研县| 团风县| 阿克苏市| 泸溪县| 民乐县| 潞城市| 黄骅市|