select max()...总归会返回纪录的,如果表是空的,就返回一条值为null的纪录。如下:
SQL> select * from agents
  2  ;
no rows selectedSQL> select max(percent) from agents;
MAX(PERCENT)
------------SQL> select count(*) from (select max(percent) from agents);
  COUNT(*)
----------
         1
以上现实有一条纪录,所以locsRs.Eof永远为非真。用nvl函数做一下变化,把null变成0就可以解决问题。
SQL> select nvl(max(percent),0) from agents;
NVL(MAX(PERCENT),0)
-------------------
                  0