CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

求一个plsql问题

楼主baideer(白德尔)2005-12-23 15:36:43 在 Oracle / 开发 提问

CREATE   OR   REPLACE   TRIGGER   ALARM110_BJQKB  
  AFTER   INSERT   ON   ALARM110  
  REFERENCING   OLD   AS   old   NEW   AS   new  
  FOR   EACH   ROW  
  DECLARE  
          BJQKB_FSQY     VARCHAR2(30);                                                                                
          BJQKB_XB         VARCHAR2(3);                                                                                    
  BEGIN  
          IF   INSERTING   THEN  
                BEGIN  
                    SJJY_ALARM110(:new.ID,REID);                                                                    
                    BJQKB_CCXB(:new.SEX,BJQKB_XB);                                                                
                    BJQKB_CCDZ(:new.CASEAREA,BJQKB_FSQY);                                                
                                                 
                    INSERT   INTO   TEMP_PS_BJQKB@db188todb2.us.oracle.com(JJBH,JJSJ,FSQKSJ,FSQY,FSDD,XB,LXDH,CZSJ)  
                                  VALUES(:new.ID,  
                                                TO_DATE(:new.CASETIME,'YYYY-MM-DD   HH24:MI:SS'),  
                                                TO_DATE(:new.ALARMTIME,'YYYY-MM-DD   HH24:MI:SS'),  
                                                NVL(BJQKB_FSQY,'750000'),  
                                                :new.CASEADDR,  
                                                BJQKB_XB,  
                                                :new.SELEPHONE,  
                                                SYSDATE);  
                                         
                EXCEPTION   WHEN   OTHERS   THEN                                                                         --   抛出异常  
                 
                    /*--   传值过程中出现错误将错误信息插入日志表   ----------------------------------------------------------------*/  
                    INSERT   INTO   JK_SJCCRZB(SJBH,CZQK,RZRQ,SJBM)  
                                  VALUES(:new.ID,  
                                                '10',                                                                                   --   '10'   抛出异常数据没有插入临时表  
                                                SYSDATE,  
                                                'ALARM110');  
                END;  
          END   IF;  
  END   ALARM110_BJQKB;  
   
  以上是我写的触发器,当抛出异常时,将错误信息插入日志表,但此时   :new.ID   值为空了,问如何解决,在线等,急!!! 问题点数:20、回复次数:4Top

1 楼wupangzi(无本之木)回复于 2005-12-23 16:03:32 得分 0

思路自己最清楚!如果必须保存new.ID,那么为什么会没有呢?记日志,没必要搞主键!Top

2 楼baideer(白德尔)回复于 2005-12-23 16:07:27 得分 0

只有主键是唯一标识,这也是客户要求的。  
  我想问为什么会在抛出异常后取不到。  
  就是在   EXCEPTION   下面的INSERT语句Top

3 楼wupangzi(无本之木)回复于 2005-12-24 10:19:57 得分 20

应该不会!如果编译通过,那就不应该存在这样的情况!  
  或许你的异常就是因为没有:new.ID而产生的!  
  你可以用一个其他字段new列来代替看看就知道了!  
   
  等你调试结果!Top

4 楼Renkey(Renkey)回复于 2005-12-24 14:35:56 得分 0

:new.id可不可以改为ROWID.Top

相关问题

  • 50分 help!!!About plsql﹕
  • plsql function的问题!
  • 请问何为PLSQL?
  • PLSQL表的排序问题
  • plSQL四个问题期待解决:
  • 动态plsql,急 !!!高手请进!!
  • 如何在PLSQL 中写视图
  • 关于plsql的简单问题
  • plsql中一个关于commit的问题
  • PLSQL中建database Link的问题

关键词

  • bjqkb
  • fsqy
  • alarm110
  • 日志
  • 抛出异常
  • 插入
  • xb
  • insert

得分解答快速导航

  • 帖主:baideer
  • wupangzi

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo