首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 一個關於DATEBASE TRIGGER的問題解析
【标  题】:一個關於DATEBASE TRIGGER的問題解析
【关键字】:DATEBASE,TRIGGER
【来  源】:http://blog.chinaunix.net/article.php?articleId=57384&blogId=11568

一個關於DATEBASE TRIGGER的問題解析

這是我整理最近的測試和筆記後,所記錄的一種小寫DB TRIGGER的方法,只供岑考。

要求:一異動表中插入入庫記錄時,將數量加到其庫存表中的入庫總數中;當異動表中插入出庫記錄時,將數量加到其庫存表中的出庫總數中;入庫和出庫都需要計算庫存表中的庫存數。

CREATE OR REPLACE TRIGGER "TRG_CHGE" BEFORE INSERT OR DELETE OR UPDATE ON LY.FY_CHGE REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW  
DECLARE
   V_PROD_NO FY_PROD.PROD_NO%TYPE;
   T_IMARK   NUMBER(1);--入庫加減碼
   T_OMARK   NUMBER(1);
   T_SMARK   NUMBER(1);
BEGIN

   --如不考慮產品編碼及異動類別會改變的情況
   --不考慮庫存出現負數的情況
   --二者均在form中控制
   IF NVL(:NEW.CHGE_TYPE,:OLD.CHGE_TYPE) = 'I' THEN
    T_IMARK := 1;
    T_OMARK := 0;
    T_SMARK := 1;
   ELSE
     T_IMARK:=0;
     T_OMARK:=1;
     T_SMARK:=-1;
   END IF;
     SELECT PROD_NO INTO V_PROD_NO
     FROM FY_STOC
     WHERE PROD_NO=NVL(:NEW.PROD_NO,:OLD.PROD_NO);
  IF SQL%NOTFOUND THEN
     INSERT INTO FY_STOC (PROD_NO,IN_QTY,OUT_QTY,STOC_QTY)
      VALUES(NVL(:NEW.PROD_NO,:OLD.PROD_NO),NVL(:NEW.QTY,:OLD.QTY)*T_IMARK,NVL(:NEW.QTY,:OLD.QTY)*T_OMARK,NVL(:NEW.QTY,:OLD.QTY)*T_SMARK);
     END IF;
   IF SQL%FOUND THEN
     UPDATE FY_STOC SET
     IN_QTY=NVL(IN_QTY,0)+(NVL(:NEW.QTY,0)-NVL(:OLD.QTY,0))*T_IMARK,
     OUT_QTY=NVL(OUT_QTY,0)+(NVL(:NEW.QTY,0)-NVL(:OLD.QTY,0))*T_OMARK,
     STOC_QTY=NVL(STOC_QTY,0)+(NVL(:NEW.QTY,0)-NVL(:OLD.QTY,0))*T_SMARK
     WHERE PROD_NO=NVL(:NEW.PROD_NO,:OLD.PROD_NO);
   END IF;
END;

启动和关闭oracle10g enterprise manager consle:【上一篇】
何謂PL/SQL?:【下一篇】
【相关文章】
  • CREATE OR REPLACE TRIGGER
  • 触发器运用<一>Using a Trigger to Auto-Generate a Key Value
  • 触发器运用<二>Using a Trigger for Security Monitoring
  • 触发器运用<三>Using a Trigger for Data Validation
  • Oracle中自增字段的两种方法的比较(Trigger和Sequence)
  • 【随机文章】
  • 电脑高手指点电脑技巧精粹
  • [转贴]ORACLE中编写树级代码
  • Java程序3(流,socket)续
  • 设置mysql允许远程连接
  • 一个登陆程序代码
  • 明明白白看MFC之程序框架
  • 出人头地、光宗耀祖,都不是那么回事
  • nio简介
  • jdbc连接数据库
  • 高手递招:删除系统顽固文件技巧
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.