oracle的提交

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:04:29
在一个function中要处理一批数据,量会非常大。。。
客户要求前台需要做出进度条。
目前的思路是,数据处理一部分,在LOG表中生成一条数据,再处理一部分,更新LOG。。。前台循环从数据库中得到数据,实现进度条功能!
请问怎么能让LOG表提交而数据处理不提交?
因为如果处理中数据有错误需要rollback数据。前台还不能保持一直连接。。。谢谢
呵呵,不是这个意思的。但也感谢你的回答。。
功能举例;
需要操作100条数据,执行十条在log表中update一个10,表示执行了十条,执行20条在log表中update一个20,表示执行二十条。。。类推!
但是如果执行中遇到错误,则需要回退前边所有操作!
这样就有个问题了,在不提交情况下,web拿不到log表中执行的进度。

oracle的提交用commit,一般commit用语update语句及insert语句中。

如,有以下两个语句:

update test set id=3 where id=2;
commit;
insert into test values (4,'王五');
commit;

如果进行了update及insert操作后不进行提交的话,那么修改或插入的数据只在当前session有效,并不会写入数据库,只有当commit(提交)后,才会生效。

这个。。。
没有完全懂你的意思
让LOG表提交而数据处理不提交。LOG是什么~数据处理肯定是不提交的啊,最后没出错才提交的吧,如果出错了就全部回退了。

没有COMMIT的话,一条数据都得不到的吧~
要么全部提交了,要么全部ROLLBACK了嘛。。