回答第一个问题:
loop中增加异常处理,SELECT MAX(KKKK)....,加上max处理后,即使select出来的值为空也不会走异常,只是kkk=null,eg:loop
    begin
        select max(kkkk)……
     exception
         when no_data_found then
              ……
         when others then
              ……
     end;
end loop;