SQL> CREATE OR REPLACE TRIGGER gjpt.TRI_AA
  2  AFTER  DELETE
  3  ON gjpt.AA
  4  FOR EACH ROW
  5  begin
  6     insert into AA_BAK (a1) values(:old.a1);
  7  end gjpt.TRI_AA;
  8  /警告: 创建的触发器带有编译错误。SQL> select * from aa;A1
--------------------
3
2
1SQL> select * from aa_bak;未选定行SQL> delete from aa;
delete from aa
            *
ERROR 位于第 1 行:
ORA-04098: 触发器 'GJPT.TRI_AA' 无效且未通过重新确认这是我的操作过程,大家看看吧!写了!一定给分!

解决方案 »

  1.   

    警告: 创建的触发器带有编译错误。
    show error命令查看编译错误信息SQL> create or replace trigger tr_del_a
      2  after delete
      3  on a for each row
      4  begin
      5  insert into b(id) values(:old.id);
      6  end tr_del_a;
      7  /触发器已创建SQL> select * from a;ID   ST C  D
    ---- -- -- ----
    11   2  19 48
    12   2  29 58
    13   2  39 68SQL> select * from b;ID   ST C  D
    ---- -- -- ----
    19   11 y  48
    29   11 n  48
    39   11 y  48
    119  12 y  58
    129  12 n  58
    139  12 y  58
            z  48已选择7行。SQL> delete from a;已删除3行。SQL> select * from b;ID   ST C  D
    ---- -- -- ----
    19   11 y  48
    29   11 n  48
    39   11 y  48
    119  12 y  58
    129  12 n  58
    139  12 y  58
            z  48
    11
    12
    13已选择10行。SQL>
      

  2.   

    try:
    CREATE OR REPLACE TRIGGER gjpt.TRI_AA
      2  AFTER  DELETE
      3  ON gjpt.AA
         REFERENCING OLD AS OLD NEW AS NEW
      4  FOR EACH ROW
      5  begin
      6     insert into AA_BAK (a1) values(:old.a1);
      7  end gjpt.TRI_AA;