只有一个insert语句,oracle会把他当作一个事务进行处理,如果还有别的语句,像你写的那样,要显式用用commit;提交!

解决方案 »

  1.   

    是在触发器中加一个 commit;语句吗?我在if ...then 中的insert语句后加了一条commit;后向sms_getorder插入数据时出现如下错误:
    insert into sms_getorder(areacode,citynumber,usernumber,spnumber,msgcontent,reverttime,revertstate,Linkid)
                *
    ERROR 位于第 1 行:
    ORA-02055: 分布式更新操作失效;要求回退
    ORA-04092: COMMIT 不能在触发器中
    ORA-06512: 在"WOODOSMSLOGS.INSERT_GETORDER_REPORT_TEST2", line 16
    ORA-04088: 触发器 'WOODOSMSLOGS.INSERT_GETORDER_REPORT_TEST2' 执行过程中出错
      

  2.   

    那个触发器和你的SMS_GetOrder表的插入操作是在一个事务中的。你的SMS_GetOrder表如果不commit的话,就相当于没有插入数据。当然也就不能触发SMS_Day_Report表的插入操作了