我写了一个触发事件但执行到某一句的时候就执行不下去了,但也没报错,我想抛出这句的出错信息,如何抛出异常呢?麻烦各位大哥告知小弟,谢谢
create or replace trigger new_sms
after INSERT
on cardlog FOR EACH ROW
declare
str varchar2(300);
CMNAME varchar2(20);
CMMOBILE1 varchar2(20);
BEGIN
if (:new.cdltrans='50') then
----执行中间这个select 语句赋值给CMNAME变量的时候就执行不下去了
select custmember.CMNAME into CMNAME from custmember,cardmain where  custmember.cmmemid=cardmain.cdmcid  and cardmain.cdmno=:new.cdlcno and custmember.CMMOBILE1 is not null; 
----执行中间这个select 语句赋值给CMNAME变量的时候就执行不下去了
str:='尊敬的'||CMNAME||',欢迎您加入VIP会员俱乐部,我们将竭诚为您提供优质的服务';
INSERT INTO YZL_DX_SEND (CDMNO,CMNAME,CONTENT,MOBILE,SB,FS_DATE,send) values(:new.cdlcno,CMNAME,str,CMMOBILE1,'3',sysdate,'N');
end if;
end;如何在执行select 这条语句的时候抛出异常,谢谢

解决方案 »

  1.   

    添加EXCEPTION块
    用DBMS_OUTPUT打印出SQLCODE和SQLERRM,然后具体定位异常问题
      

  2.   

    在end;前面加上EXCEPTION
       WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
      

  3.   

    楼上两位大哥,能不能直接拿我的触发事件来改呢我的触发事件就是执行到select custmember.CMNAME into CMNAME from custmember,cardmain where  custmember.cmmemid=cardmain.cdmcid  and cardmain.cdmno=:new.cdlcno and custmember.CMMOBILE1 is not null; 这句后就执行不下去了,虽然也不报错,而且编译的时候也没错能正常编译,所以我想知道执行完这句后到底报什么错误,麻烦各位大哥帮帮忙,小弟谢谢了