Plsql 当我创建一个触发器时,它会给出一个错误,表示它无效并且重新验证失败
我尝试更新client_master表,但它给出了一个错误Idk why。我确实更新了client_master set name='abc'where name='xyz'Plsql 当我创建一个触发器时,它会给出一个错误,表示它无效并且重新验证失败,plsql,triggers,Plsql,Triggers,我尝试更新client_master表,但它给出了一个错误Idk why。我确实更新了client_master set name='abc'where name='xyz' create or replace trigger client_audit before update or delete on client_master for each row begin case when updating then insert into
create or replace trigger client_audit before update or delete on client_master for each row
begin
case
when updating then
insert into audit_client values(:OLD.c_no,:OLD.name,:OLD.address,:OLD.bal_due,'upd','1',sysdate);
when deleting then
insert into audit_client values(:OLD.c_no,:OLD.name,:OLD.address,:OLD.bal_due,'delet','2',sysdate);
end case;
end;
/
试试这个解决方案。希望这有帮助
CREATE OR REPLACE TRIGGER client_audit before
UPDATE OR
DELETE ON client_master FOR EACH row
DECLARE
BEGIN
IF UPDATING THEN
INSERT
INTO audit_client VALUES
(
:OLD.c_no,
:OLD.name,
:OLD.address,
:OLD.bal_due,
'upd',
'1',
sysdate
);
ELSIF DELETING THEN
INSERT
INTO audit_client VALUES
(
:OLD.c_no,
:OLD.name,
:OLD.address,
:OLD.bal_due,
'delet',
'2',
sysdate
);
END IF;
END;
/
如果你认为这回答了问题,你应该解释你的推理。i、 e.您认为
case
语句有问题吗?错误消息是什么?