找到报错的根源了,但是不明白为什么,请高手解释一下,谢谢!
DECLARE
CNT NUMBER:=0;
CNT1 NUMBER:=0;
LAST_YYMM VARCHAR2(8);
V_YYMM VARCHAR2(8);
v_store varchar2(4);
v_dep_id varchar2(8);
cursor c_1 is select store_no,dep_id from drp0015t where LOGINAME=:PARAMETER.PUSERNAME;
begin
for r1 in c_1 loop
v_store:=r1.store_no;
v_dep_id:=r1.dep_id;
last_yymm:=null;
v_yymm:=null;
CNT:=0;
CNT1:=0;
SELECT COUNT(*) INTO CNT1 FROM OBS000T0 WHERE STORE_NO=R1.STORE_NO and dep_ID=r1.dep_id;
IF CNT1>0 THEN
SELECT STK_YYMM INTO LAST_YYMM FROM OBS000T0 WHERE STORE_NO=R1.STORE_NO and dep_ID=r1.dep_id;
V_YYMM:=TO_CHAR(ADD_MONTHS(TO_DATE(LAST_YYMM,'YYYYMM'),1),'YYYYMM');
SELECT COUNT(*) INTO CNT FROM OBS300T0 a,branch_dept b
WHERE YYYYMM=V_YYMM and a.deptno=b.deptno and b.branch_id=r1.store_no and b.deptno=r1.dep_id;
IF CNT>0 THEN
:B0.MESS:=v_store||'-'||v_dep_id||'-'||V_YYMM||' 月资料已经提取,无需再提取......';
-- RAISE FORM_TRIGGER_FAILURE;
ELSE
LP_INS_OBS300T0(r1.store_no,r1.dep_id,LAST_YYMM,V_YYMM);
end if;
ELSE
:B0.MESS:='系统设定档无 '||v_store||'-'||v_dep_id||' 的资料,请核定后再抓取...';
END IF;
end loop;
:B0.MESS:='提取资料完成';
EXCEPTION
when others then
:b0.mESs:='when_button_pressed error:'||v_store||'-'||v_dep_id||sqlerrm;
RAISE FORM_TRIGGER_FAILURE;
END;
只要把中间的那个RAISE FORM_TRIGGER_FAILURE
给注释掉就ok了,
在这里为什么不能用这个啊