代码之家  ›  专栏  ›  技术社区  ›  Charles Bretana

从ADO.NET使用Oracle事务并涉及触发器时的范围?

  •  2
  • Charles Bretana  · 技术社区  · 16 年前

    由于这似乎是一个非常常见的要求,而且我知道在SQL Server中这是可能的,所以我觉得这并不合适。

    这是正确的吗?

    1 回复  |  直到 16 年前
        1
  •  6
  •   Tony Andrews    16 年前

    如果您的告密者说的是Oracle数据库触发器,那么他是错的:

    1) 你 将提交放在非自治的Oracle触发器中:

    SQL> create trigger this_wont_work
      2  after insert on emp
      3  begin
      4    commit;
      5  end;
      6  /
    
    Trigger created.
    
    SQL> insert into emp (empno) values (123)
      2  /
    insert into emp (empno) values (123)
                *
    ERROR at line 1:
    ORA-04092: cannot COMMIT in a trigger
    ORA-06512: at "TONY.THIS_WONT_WORK", line 2
    ORA-04088: error during execution of trigger 'TONY.THIS_WONT_WORK'
    

    没有任何危险的触发提交工作,你做了以外的触发。