declare 
    Cursor cur_policy is
     select cm.policy_code, cm.applicant_id, cm.period_prem,cm.bank_code,cm.bank_account
     from t_contract_master cm
     where cm.liability_state = 2
     and cm.policy_type = 1
     and cm.policy_cate in ('2','3','4')
     and rownum < 5
     order by cm.policy_code desc;
Begin
   For rec_Policy in cur_policy loop
       Dbms_Output.put_line(rec_policy.policy_code);
   end loop;
   Exception 
     when others then
         Dbms_Output.put_line(Sqlerrm);
         
end;1.能不能解释下这句SQL语句的意思呢
2.Cursor在这里起到什么作用
For rec_Policy in cur_policy loop  cur_policy 在这里的意义。
3.Exception 
     when others then
         Dbms_Output.put_line(Sqlerrm);
这句的详细意思

解决方案 »

  1.   

    1.Cursor 是一个游标结果集,select.... 查询出来的结果放到游标 cur_policy里,                 2.For rec_Policy in cur_policy loop cur_policy :循环迭代 cur_policy里的数据放到变量   rec_Policy 里
    3.如果出现问题的话抛出异常             
      

  2.   


    declare 
        Cursor cur_policy is   --定义一个游标变量
         select cm.policy_code, cm.applicant_id, cm.period_prem,cm.bank_code,cm.bank_account
         from t_contract_master cm
         where cm.liability_state = 2
         and cm.policy_type = 1
         and cm.policy_cate in ('2','3','4')
         and rownum < 5
         order by cm.policy_code desc;
    Begin
       --用for打开游标,循环游标里的每条记录
       For rec_Policy in cur_policy loop
           Dbms_Output.put_line(rec_policy.policy_code);  --打印当前游标指向的记录列policy_code值
       end loop;   
       Exception    ---异常处理部分,出现异常时才会执行
         when others then
             Dbms_Output.put_line(Sqlerrm);
             
    end;
      

  3.   

    回复于:2012-05-15 17:05:151.Cursor 是一个游标结果集,select.... 查询出来的结果放到游标 cur_policy里, 2.For rec_Policy in cur_policy loop cur_policy :循环迭代 cur_policy里的数据放到变量 rec_Policy 里
    3.如果出现问题的话抛出异常