我发现无法在触发器中select 本表的数据
?
???
什么意思?

解决方案 »

  1.   

    create or replace trigger a_tri
    before insert or update or delete on a
    for each row
    v_col varchar2(10);
    begin
    select col_name into v_col from a where ...;  --可以这样操作,只要行级别前就可
    ...
    end;
    /
      

  2.   

    welyngj(平平淡淡):我的意思就是在例如:在写表a上的触发器时,不能查询本表的数据如:定义游标cursor cur_tmp is select a1,a2 from a
      

  3.   

    SQL> select * from aa;       NUM STR
    ---------- ----------
             0 1SQL> 
    SQL> create trigger aa_tri
      2  before insert on aa
      3  for each row
      4  declare
      5  cursor t_sor is
      6  select * from aa;
      7  begin
      8  for v_sor in t_sor loop
      9  dbms_output.put_line(v_sor.num||v_sor.str);
     10  end loop;
     11  end;
     12  /Trigger createdSQL> insert into aa values(1,'2');1 row insertedSQL> select * from aa;       NUM STR
    ---------- ----------
             0 1
             1 2
      

  4.   

    在before是可以的,可是在after中就会出错