欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

ora 触发器的有关问题,大侠请进

更新时间: 2014-01-05 02:29:50 责任编辑: Author_N1

 

ORA 触发器的问题,大侠请进
SQL code


DROP TABLE SIMM_H_F_MASTER CASCADE CONSTRAINTS ; 

CREATE TABLE SIMM_H_F_MASTER ( 
  IMSI_H        VARCHAR2 (20)  NOT NULL, 
  MSISDN_H      VARCHAR2 (20)  NOT NULL, 
  NETWORKID     NUMBER (2)    NOT NULL, 
  PROVINCE_NUM  NUMBER (2), 
  IMSI_F        VARCHAR2 (20), 
  MSISDN_F      VARCHAR2 (20), 
  COS           VARCHAR2 (3), 
  STATUS        NUMBER (1)    DEFAULT 1 NOT NULL, 
  CONSTRAINT SIMM_H_F_MASTER_PK PRIMARY KEY ( MSISDN_H, NETWORKID ) USING INDEX 
) ; 


DROP TABLE SIMM_UPDATE_SUBS_INFO CASCADE CONSTRAINTS ; 

CREATE TABLE SIMM_UPDATE_SUBS_INFO(
  IMSI_H        VARCHAR2 (20)  NOT NULL,
  MSISDN_H      VARCHAR2 (20)  NOT NULL,
  IMSI_F        VARCHAR2 (20),
  MSISDN_F      VARCHAR2 (20),
  STATUS        NUMBER (1)      DEFAULT 1 NOT NULL,
  SENDOUT       NUMBER (1)      DEFAULT 0 NOT NULL,
  INSTANCE_NAME VARCHAR2 (20), 
  LAST_MODIFIED_DAT DATE ,
  CONSTRAINT SIMM_UPDATE_SUBS_INFO PRIMARY KEY (IMSI_H) USING INDEX 
) ;

CREATE OR REPLACE TRIGGER TRIG_UPDATE_SUNBS
      AFTER INSERT OR UPDATE OR DELETE ON SIMM_H_F_MASTER FOR EACH ROW
BEGIN
    if inserting then
        if exists(SELECT IMSI_H FROM SIMM_UPDATE_SUBS_INFO WHERE  IMSI_H = :NEW.IMSI_H) then
          delete  from SIMM_UPDATE_SUBS_INFO where  IMSI_H = :NEW.IMSI_H;
        end if;
        insert into SIMM_UPDATE_SUBS_INFO
            (IMSI_H,MSISDN_H,IMSI_F,MSISDN_F,STATUS,LAST_MODIFIED_DAT,INSTANCE_NAME,SENDOUT) values (:NEW.IMSI_H,:NEW.MSISDN_H,:NEW.IMSI_F,:NEW.MSISDN_F,:NEW.STATUS,sysdate,'SIMM-R-CUINCOM',0);
    end if;

    if deleting then
        update SIMM_UPDATE_SUBS_INFO set MSISDN_H=:OLD.MSISDN_H,IMSI_F=:OLD.IMSI_F,MSISDN_F=:OLD.MSISDN_F,STATUS=-1,LAST_MODIFIED_DAT=sysdate,SENDOUT=0 where IMSI_H=:OLD.IMSI_H;
    end if;

  if updating then
        update SIMM_UPDATE_SUBS_INFO set MSISDN_H=:NEW.MSISDN_H,IMSI_F=:NEW.IMSI_F,MSISDN_F=:NEW.MSISDN_F,STATUS=:NEW.STATUS,LAST_MODIFIED_DAT=sysdate,SENDOUT=0 where IMSI_H=:OLD.IMSI_H;
  end if;
  
END




编译不通过,哪位高手帮我指点指点

--参考方法--
什么平台,什么数据库,什么报错信息都没有
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:29:50
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10565/
本文WWW.DOC100.NET DOC100.NET版权所有。