oracle9i
表A上建立了一个触发器,在after update时会执行,在该触发器中有自治事务.
过程如下:
(1)开始事务1
(2)执行一些数据库操作
(3)修改表A中的一条记录
(4) after update时触发器开始执行
(5) 开始自治事务2
(6) 读取表A的记录进行某些操作
(7) 提交自治事务2
(8) 触发器结束执行
(9)执行一些数据库操作
(10)提交事务1现在出现的问题是在(6)中获取到的表A的记录并不是after update的,而是before update的,而我希望得到的是after update的记录.
请问,我该如何处理?
表A上建立了一个触发器,在after update时会执行,在该触发器中有自治事务.
过程如下:
(1)开始事务1
(2)执行一些数据库操作
(3)修改表A中的一条记录
(4) after update时触发器开始执行
(5) 开始自治事务2
(6) 读取表A的记录进行某些操作
(7) 提交自治事务2
(8) 触发器结束执行
(9)执行一些数据库操作
(10)提交事务1现在出现的问题是在(6)中获取到的表A的记录并不是after update的,而是before update的,而我希望得到的是after update的记录.
请问,我该如何处理?
但是问题不在这里。
而是在语句中去select这条记录(同时也select与其相关的记录),得到是修改之前的值,而不是修改之后的值。目前我的解决办法是select与其相关的记录但不包括修改的那条,再通过:new的方式与刚才select到的记录进行比较,得到结果。感觉这样处理太麻烦了,在sybase中轻易地就可解决,到oracle里却费这么大的劲。