嗨我设置了一些触发器,我无法通过此错误
SET SERVEROUTPUT ON
CREATE OR REPLACE TRIGGER trigger2
BEFORE INSERT ON new_donation
FOR EACH ROW
--WHEN (new.contamt <= 10)
DECLARE
v_idno VARCHAR2(5);
v_driveno VARCHAR2(3);
v_contdate DATE;
v_contamt NUMBER(6,2);
BEGIN
SELECT IDNO, DRIVENO, CONTDATE, CONTAMT INTO v_idno, v_driveno, v_contdate, v_contamt
FROM OLD_DONATION2
WHERE IDNO = :new.idno;
IF :new.contamt < 50 THEN
RAISE_APPLICATION_ERROR (-20001, 'CONTRIBUTION TOO LOW FOR '
|| :new.idno || ' ' || :new.contamt);
END IF;
END;
/
SET SERVEROUTPUT OFF
另一部分
DECLARE
v_idno new_donation.idno%TYPE := '&in_idno';
v_driveno new_donation.driveno%TYPE := '&in_driveno';
v_contdate new_donation.contdate%TYPE := '&in_contdate';
v_contamt new_donation.contamt%TYPE := &in_contamt;
BEGIN
INSERT INTO new_donation
VALUES (v_idno, v_driveno, v_contdate, v_contamt);
END;
/
我在trigger2处插入值时出现此错误。
第1行的错误:ORA-04098:触发&#39; XXXXXXXXX.NEW_DONATION&#39;是 无效且无法重新验证ORA-06512:第7行
我想要做的就是将用户输入的一些值插入到这个新表中,该表为空。 当捐赠量<&lt; 10我想要一个错误。
答案 0 :(得分:0)
请按照以下步骤操作。
运行此查询select status from all_objects where object_name = 'TBL_USER_TRIGGER' and object_type = 'TRIGGER';
如果状态无效,请运行alter trigger trigger2 compile;
然后运行show errors
它会为你抛出错误。你需要解决这些问题。