在一个for update的CURSOR里要按条件执行对当前记录的delete操作,并且还要批量commit,执行说fetch顺序无效,请问是因为commit后CURSOR无效了么?如何解决保证能批量commit?
解决方案 »
- 如何用一条sql语句查看所有表的注释?
- 向特定字段中插入数据,使用update语句
- oracle 报错
- 数据库技术论坛QQ群(号码:7401390)已经成立 欢迎大家的加入
- 有关数据库的sql查询的速度问题。
- 100分求助[在线等]
- 急啊,在线等啊,版本问题:我的机器上面安装的ORA8,现在又安装了ORA9,我没有安在一个目录下面,但是可能还是覆盖了
- 怎样查看oracle的连接数????
- ****一个很急的问题,刚装了ORACLE 9.1的,我用SYSTEM登录时,他说我的SYSDBA权限不足,!!!!!!!!!!!!!!!!!!!!!
- 在把DMP文件导入数据库时的问题,急!!!
- 如何判断行锁定。
- 那位仁兄收藏了关于pl/sql比较经典的电子书啊,或者技术手册之类的
for update 后 如果在中间commit 那就会报错的!
1,一个方法是 不用for update
2,另一方法是 就是一个事务结束再commit;
可以多写几个事务,把一个批量处理作为一个事务处理;
循环当中,当delete的数量达到一定数量时,就设置一个savepoint,
....
一直到全部循环结束,那么就commit.
如果中间有exception抛出, 那么就commit上一次设置的savepoint, rollback savepoint之后的事务.