请问大家:游标从A表中取数据,然后循环删除A表中数据(为什么这样做,是因为删除数据时,要做其它相关操作),删除一条后立即commit.然后再循环.
这样是不是会导致游标内存区里的值变来变去呢。如 cursor cur_a is select * from table1loop
fetch cur_a;
when cur_a%nodatafound then exit;
delete from table1 where ....
--其它一系列动作
commit;end loop;因为游标很大,必须及时commit;不然怕回滚段不足。
这是定义游标是否有问题???
这样是不是会导致游标内存区里的值变来变去呢。如 cursor cur_a is select * from table1loop
fetch cur_a;
when cur_a%nodatafound then exit;
delete from table1 where ....
--其它一系列动作
commit;end loop;因为游标很大,必须及时commit;不然怕回滚段不足。
这是定义游标是否有问题???
解决方案 »
- 如何按半小时判断数据
- 你知道吗?
- 表空间授权的问题
- 10g 数据导入 表无法通过8192扩展
- 这个update怎么写啊?
- ora-28009:connection as sys should be as sysdba or sysoper 错误,昨天还是可以的呢
- 请问如何在Oracle中的控制台上写这样的查询语句
- 求救,如何写个sql将一个表里的某个字段的所有记录连接起来,返回一个字符串?
- ORACLE 8.0.5 客户端连接8.1.7的数据库服务器出错。
- 请问如何设置使oracle8.05起机时不自动运行,我想手动启动它
- 某些远程 DBs 可能有问题,是不是数据库有问题啊??
- 好东东愿与大家共享, oracle内部培训资料
然后在循环完之后处理
代码如下:
declare
c int := -1;
begin
select count(*) into c
from table1;
for i in 0..c loop
-- do somthing;
end loop;
truncate table table1;
end;