日期:2014-05-18  浏览次数:20463 次

oracle 的大量数据更新的效率问题,请帮助,谢谢!
请问,比方说,一个student表,
st_NO       sex         name         grade  
-----       -----     -----       ------
0001           f             TOM             1  
0002           m             JILL           2
0003           m             SHIT           3
有大量的数据,我想把每个同学(st_NO   between   1   and   2,000,000)的grade   都加1
大约有200万条数据,用while(EXEC   SQL   )的形式,频繁调用SQL语句,好象效率很底,
我想把符合更新条件的st_NO放到一个数组里面,char*ST_NO[2000000]里面,之后,
把循环放在EXEC   SQL   语句里面实现,这样可以吗??具体点,怎么实现,谢谢.
语言是Pro*C+ORACLE,内存地址2G以内应该可以吧(汗).
谢谢各位了!

------解决方案--------------------
不太明白,既然是grade都加1,为何不一起UPDATE?虽然不懂Oracle,我想也是可以一起UPDATE的,以下是SQL Server的UPDATE方法:
update student set grade = grade + 1 where st_NO between 1 and 2000000