将PRAGMA AUTONOMOUS_TRANSACTION,COMMIT和Insert语句加到一个单独的存储过程后,由触发器调用那个存储过程.

解决方案 »

  1.   

    File_Temp 插入数据的时候为什么还需要独立事务呢,是不是出发了其他的什么操作?
    自己检查一下
      

  2.   

    一开始是没有加PRAGMA AUTONOMOUS_TRANSACTION,直接在Oracle里手工修改数据触发触发器也没有错,就是装在对方的数据库上后由程序修改表的数据触发才出现的这个错误。
      

  3.   

    如果是在Oracle里手工修改数据触发这个触发器,就不需要加PRAGMA AUTONOMOUS_TRANSACTION,运行正常,就是由它的程序触发时,才出的错。
      

  4.   

    是不是在客户端的File_Temp@mmlink表上还有触发的操作呢?
      

  5.   

    估计是sql server跟oracle机制有区别。
    你使用了独立事务,还有问题,这应该跟oracle没什么关系了。
    考虑在sql server 端找一下原因。
      

  6.   

    好吧,谢谢bzszp(SongZip)的帮助。
      

  7.   

    另外,还想请问,在Oracel里调用 SQL Server中存储过程的语句是什么?不管传的参数与目标存储过程的参数是否对应,我用
    "i"@meslink(tr_Product);    编译可以通过,但用
    "i"@meslink(tr_Product,tr_Part);就通不过,i是存储过程的名字,我一共要传六个参数,请问格式应该怎么写?