高手们如何求记录集的记录总数? 要是担心数据删掉是不是可以锁定一下。count(1)比count(*)更有效率。 另外尽量使用exists代替select count(1)来判断是否存在记录, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主,如果只是把所有的行循环一遍的话,并不需要知道行数亚。pl/sql中的话1 声明 yourcursor2 for rec-yourcursor in yourcursor loop do something; end loop;oracle会自动在最后一行处理完后,退出loop的。java中的话while(yourResultSet.next()){ do something;}就可以了。 补充一点。如果在处理完后想知道处理的行数的话,可以在loop中添加一个计数器即可。pl/sqlwk-count number := 0;for rec-yourcursor in yourcursor loop do something; wk-count := wk-count + 1;end loop;javaint iCount = 0;while(yourResultSet.next()){ do something; iCount ++;} 用EOF()可以吧,就不用求总数了 使用游标 进行for循环就行了,何必在去 COUNT进行统计浪费时间和资源呢。 请问 LGQDUCKY(飘) ( ):for比count要快吗?why? count(1), count(*), count(rowid)执行效率应该是一样的。 count(1), count(*), count(rowid)执行效率应该是一样的。--我同意你的看法,他们的效率差异应该是相差无几。 如果得在过程或函数中处理,则直接在过程中用count(*)然后处理别的数据,这样就不当心别人删除导致数据和实际数据不等的情况了, 如果要把数据查询到前端, 那可以把记录填充到记录集,然后用记录集体的ds.tables[0].rows.count来得到该记录集的总记录数,后者本地处理,基本不耗费什么资源. 在过程和函数中处理,也不需要用count(*)来避免数据被人修改数据亚。取结果集时用 select ... for update no wait就可以lock你需要的纪录。 如果数据量很大,则不要 for循环 count(1)应该比count(*)效率高,在数据量大和字段多的情况下 寻找BLOB字段的替代类型。 在安装oracle9i时碰到的问题 两个oracle数据库,如何实现表的同步?~~~~~~~~~~~~~~~~~~~~~~~~~谢谢各位 请教一个SQL查询的问题 紧急求援,Oracle中的逆累积分布函数,或者说累积逆分布函数 请教这样的集合如何查询? Oracle8i的sql worksheet怎样用;还有sql plus. 游标FOR循环中,如何判断最后一条记录 如何把二进制的源文件加载到数据库的目标表(空表)中? 求助,大神帮帮忙,oracle无法启动 raw类型的字段可以查询或者关联么?该怎么做? 怎么把xml文件导入oracle数据库中?
1 声明 yourcursor
2 for rec-yourcursor in yourcursor loop
do something; end loop;
oracle会自动在最后一行处理完后,退出loop的。java中的话
while(yourResultSet.next()){
do something;
}
就可以了。
如果在处理完后想知道处理的行数的话,可以在loop中添加一个计数器即可。pl/sql
wk-count number := 0;
for rec-yourcursor in yourcursor loop
do something;
wk-count := wk-count + 1;
end loop;java
int iCount = 0;
while(yourResultSet.next()){
do something;
iCount ++;
}
for比count要快吗?
why?
--
我同意你的看法,他们的效率差异应该是相差无几。