2017-04-07 55 views
0

私はclient_masterテーブルを更新しようとしましたが、Idkなぜエラーが出ましたか?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 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; 
/
+0

エラーメッセージは何ですか? –

答えて

-1

このソリューションをお試しください。お役に立てれば。

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; 
/
+0

これが質問に答えると思うなら、推論を説明してください。つまり、 'case'ステートメントに何か問題があると思いますか? –

関連する問題