Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql “ORA-04098:触发器无效,重新验证失败ORA-06512:在第行_Sql_Oracle_Plsql - Fatal编程技术网

Sql “ORA-04098:触发器无效,重新验证失败ORA-06512:在第行

Sql “ORA-04098:触发器无效,重新验证失败ORA-06512:在第行,sql,oracle,plsql,Sql,Oracle,Plsql,ORA-04098:触发器“SMARTNLP1.TRG\u PI\u充值”无效且重新验证失败RA-06512:在HDFC\u PI.TRG\u PI\u充值,第94行 在尝试插入ECMS_充电表时达到以上 IF LV_CNT > 0 THEN BEGIN -- --BASIC LOYALTY POINTS CALCULATION -- BEGIN -- SELECT REWID, F

ORA-04098:触发器“SMARTNLP1.TRG\u PI\u充值”无效且重新验证失败RA-06512:在HDFC\u PI.TRG\u PI\u充值,第94行

在尝试插入ECMS_充电表时达到以上

   IF LV_CNT > 0 THEN
         BEGIN

--              --BASIC LOYALTY POINTS CALCULATION
--              BEGIN
--                SELECT REWID, FACTOR, MULTIPLIER INTO LV_BAS_REWID, LV_BAS_FACTOR, LV_BAS_MULTIPLIER
--                FROM SMARTNLP1.VTSMLPOINTS
--                WHERE SYSDATE BETWEEN EFFFROM AND EFFTO
--                  AND REWTYPE = 'B' AND TRNTYPE = 'LO'
--                  AND STATUS = 'A';
--
--                LV_POINTSEARN := ROUND((LV_AMOUNT/100) * NVL(LV_BAS_FACTOR, 0) * NVL(LV_BAS_MULTIPLIER, 0), 0);
--
--                EXCEPTION
--                WHEN NO_DATA_FOUND THEN
--                BEGIN
--                  LV_POINTSEARN :=0;
--                END;
--              END;

              /*Get opening*/
              SELECT CD.PCARDID, CD.CARDBAL,LD.CARDBALANCE 
              INTO LV_PCARDID,LV_OPCMSBAL,LV_OPCMSLPOINTBAL 
              FROM SMARTNLP1.VTCMCUST CUST
                INNER JOIN SMARTNLP1.VTCMPERSN PER ON PER.CUSTID=CUST.CUSTID AND PER.PARENTFLAG='P'
                INNER JOIN SMARTNLP1.VTIMPCARD CD ON CD.CUSTCHLDID = PER.CUSTCHLDID
                INNER JOIN SMARTNLP1.VTIMLCARD LD ON LD.CARDNO= CD.CARDNO
              WHERE CUST.CRNNO = LV_FONO AND CD.CURRSTATUS < '7';



              /* Inserting into NLP table */


              INSERT INTO SMARTNLP1.ECMS_RECHARGE( BANKCODE, UTRNO, VALUEDT, VALUETM, IFSC, BPCBANKAC, FONO, CUSTIFSC, CUSTBANKAC,
                                                   AMOUNT, BRCODE, BANKNAME, CUSTBANKNM, CUSTBRCODE, CURRENCY, TRANDT, TRANTM,
                                                   CUSTREFNO1, CUSTREFNO2, AREACODE, PAYMODE, COMPCODE, DOCNO, GJAHR, STATUS,
                                                   TRANCUR, EXGRATE, CRDRFLAG, CHEQUEDT, DEPSLIPNO, DEPDT, R41LINE4551, LOYALTY_REMARKS,
                                                   LOYALTY_TRANSACTION_ID, LOYALTY_TRX_STATUS, INFO_RCVD_DT )
              SELECT :NEW.BANKCODE, :NEW.UTRNO, :NEW.VALUEDT, :NEW.VALUETM, :NEW.IFSC, :NEW.BPCBANKAC, :NEW.FONO, :NEW.CUSTIFSC,
                     :NEW.CUSTBANKAC, :NEW.AMOUNT, :NEW.BRCODE, :NEW.BANKNAME, :NEW.CUSTBANKNM, :NEW.CUSTBRCODE, :NEW.CURRENCY, :NEW.TRANDT,
                     :NEW.TRANTM, :NEW.CUSTREFNO1, :NEW.CUSTREFNO2, :NEW.AREACODE, :NEW.PAYMODE, :NEW.COMPCODE, :NEW.DOCNO, :NEW.GJAHR,
                     :NEW.STATUS, :NEW.TRANCUR, :NEW.EXGRATE, :NEW.CRDRFLAG, :NEW.CHEQUEDT, :NEW.DEPSLIPNO, :NEW.DEPDT, :NEW.R41LINE4551,
                     :NEW.LOYALTY_REMARKS, :NEW.LOYALTY_TRANSACTION_ID, :NEW.LOYALTY_TRX_STATUS, :NEW.INFO_RCVD_DT
              FROM DUAL;
获取第94行中的错误


这是非常基本的oracle数据库调试。错误只是表明由于触发器无效而无法运行该语句。它没有说明触发器无效的原因。请在sql developer中打开触发器并编译它,这将显示错误。 或者,也可以使用以下命令重新编译触发器:

ALTER TRIGGER trg_pi_recharge COMPILE;
这可能会给你一个信息

Warning: execution completed with warning
要查看警告,请执行sho err

sho err;

这将向您显示失败的原因,并向您提供更详细的错误消息。

触发了吗?@astentx是的,这是一个没有给出任何错误的编译