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