不将数据插入到表单触发器失败的表中

not inserting data into tables with form trigger failure

我在关键的下一个项目上放了一个代码,它部分起作用我不知道为什么如果有人知道这个使用带有 oracle 数据库 11g 的表单 10g,请帮助我代码是这个

IF
     :BUNDLE_NUM = :USER_ID
        THEN INSERT INTO 
         PROD_CUT_ISSU_DTL
         (TRANS_ID,TRNAS_DET_ID,ORDER_NUM,ARTICLE_ID,QTY,PROD_OPEN_ID,OPER_CODE)
         VALUES
         (:PAY_IN_OUT.ISS_T_ID, :PAY_IN_OUT.ISS_TRNAS_DET_ID, A,
         B, :PROD_STCH_PROD_EMP_DET.ISS_TOT, 1 , :PROD_STCH_PROD_EMP_DET.OPER_CODE);
         
        RAISE FORM_TRIGGER_FAILURE;     
        GO_ITEM('PAY_IN_OUT.USER_ID');
        CLEAR_FORM(NO_VALIDATE);
END IF;

在做单独的单独部分时工作正常,就像我 运行 只有这段代码它会工作

IF
     :BUNDLE_NUM = :USER_ID
        THEN INSERT INTO 
         PROD_CUT_ISSU_DTL
         (TRANS_ID,TRNAS_DET_ID,ORDER_NUM,ARTICLE_ID,QTY,PROD_OPEN_ID,OPER_CODE)
         VALUES
         (:PAY_IN_OUT.ISS_T_ID, :PAY_IN_OUT.ISS_TRNAS_DET_ID, A,
         B, :PROD_STCH_PROD_EMP_DET.ISS_TOT, 1 , :PROD_STCH_PROD_EMP_DET.OPER_CODE);
END IF;

或者只是运行这段代码有效

IF
     :BUNDLE_NUM = :USER_ID
        THEN
        RAISE FORM_TRIGGER_FAILURE;     
        GO_ITEM('PAY_IN_OUT.USER_ID');
        CLEAR_FORM(NO_VALIDATE);
END IF;

如果有人知道我哪里做错了请指正,敬请指正

这个

RAISE FORM_TRIGGER_FAILURE; 

看起来非常错了。基本上,您正在做 something(插入一行)然后立即引发错误。那是行不通的。

当您想要防止 某些事情发生时引发错误(例如在异常处理部分)。

我建议你删除它。


另外请注意,如果有人使用 鼠标 浏览表单,KEY-NEXT-ITEM 将不起作用。