oracle存储过程游标遍历 Java开发交流群 677807540

create or replace procedure MQM_ADMISSION_DAYS_MER_SQL(p_startyear IN number,
                                                            p_endyear   IN number,
                                                            p_orgid     IN varchar2,
                                                            p_result    OUT VARCHAR2) is

  v_startyear number := p_startyear;
  --定义游标,名称为cur_stu 
  cursor cur_stu is
    select name,rnum,Q1,Q2,Q3
      from table(QUARTILE_SJZYT_COMM(concat(v_startyear, '0101'),
                              concat(v_startyear, '1231'),
                              p_orgid,
                              2));
begin
  

  for i in p_startyear .. p_endyear loop
    for stu in cur_stu loop
     
      --循环插入数据
      insert into MQM_ADMISSION_DAYS_MAINOPER
        (id,
         year,
         operase_name,
         operase_code,
         disch_pat,
         lower_quartile,
         median,
         upper_quartile)
      values
        (sys_guid(),
         v_startyear,
         stu.name,
         null,
         stu.rnum,
         stu.Q1,
         stu.Q2,
         stu.Q3);
    
    end loop;
    v_startyear := v_startyear + 1;
  
  end loop;
  p_result := 1;
  commit;
EXCEPTION
  WHEN OTHERS THEN
    p_result := 0;
end MQM_ADMISSION_DAYS_MER_SQL;

猜你喜欢

转载自blog.csdn.net/Bian_MCheng/article/details/82910742