`
zhucezmf
  • 浏览: 7501 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

两个表间考试成绩同步

    博客分类:
  • work
sql 
阅读更多
create or replace procedure bat_bay_jb_kstb2 is
  --获取所有的记
  cursor cur is
    select bay.*
      from bat_bay_jb bay
     where bay.kstbbz = 0
       and bay.yxbz = '1'
       and bay.bmzt = '1'
          union
          select bay.*
            from bat_bay_jb bay, bat_pxjg_zyjnksbm b
           where bay.kstbbz = 0
             and bay.yxbz = '1'
             and bay.bmzt is null
             and bay.gmsfhm = b.gmsfhm;
      --and bay.gmsfhm in ('362329197505097413'); --'321321197302287234', '330125195205054611');
  --cursor cur is select * from bat_bay_jb j where rownum < 10;
  cur_test sys_refcursor;

  item_bay   bat_bay_jb%rowtype;
  item_ksbm  bat_pxjg_zyjnksbm%rowtype;
  item_sgzj  bat_bay_sgzj%rowtype;
  bayzdyzt   number(1); --0未打印,1已打印
  count_ksbm number(1) := 0; --报名记录
  v_zkzh       varchar2(30) :='';

begin

  if cur%isopen = false then
    open cur;
  end if;

  fetch cur
    into item_bay;

  while cur%found loop
  
    select z.zkzh
      into v_zkzh
      from (select z.zkzh
              from bat_pxjg_zkz z
             where z.sfzh = item_bay.gmsfhm
             order by z.kssj desc) z
     where rownum = 1;
  
    select count(*)
      into count_ksbm
      from Bat_Pxjg_Zyjnksbm b
     where b.gmsfhm = item_bay.gmsfhm
       and b.kszt = '3';
  
    if count_ksbm > 0 then
      --防止没有记录
      OPEN cur_test FOR 'select b.* from Bat_Pxjg_Zyjnksbm b where b.kszt = ''3'' and b.gmsfhm = ''' || item_bay.gmsfhm || '''';
      --考试通过的记录
      loop
        --存在通过的记录
        fetch cur_test
          into item_ksbm;
        exit when cur_test%notfound;
        if item_ksbm.bayzdyzt = '1' --已打印
         then
          select b.*
            into item_sgzj
            from Bat_Bay_Sgzj b
           where b.gmsfhm = item_bay.gmsfhm;
          update bat_bay_jb j
             set --j.scgajg = item_ksbm.
                   j.zkzh = v_zkzh,
                 j.bmrq    = substr(item_ksbm.bmrq, 0, 8),
                 j.ksdd    = item_ksbm.ksdd,
                 j.kssj    = substr(item_ksbm.kssj, 0, 8),
                 j.kscj    = item_ksbm.kscj,
                 j.bazgzbh = item_sgzj.sgzjbh,
                 --j.bayzydj = item_ksbm
                 j.zgzfzrq = item_sgzj.fzrq,
                 j.zgzfzjg = item_sgzj.glm,
                 j.kstbbz  = 1
           where j.ryywbm = item_bay.ryywbm;
          commit;
        else
          --未打印
          update bat_bay_jb j
             set --j.zkzh = item_ksbm.j.scgajg = item_ksbm.
                 j.zkzh = v_zkzh,
                 j.bmrq = substr(item_ksbm.bmrq, 0, 8),
                 j.ksdd = item_ksbm.ksdd,
                 j.kssj = substr(item_ksbm.kssj, 0, 8),
                 j.kscj = item_ksbm.kscj
           where j.ryywbm = item_bay.ryywbm;
          commit;
        end if;
      end loop;
    
    else
      select count(*)
        into count_ksbm
        from Bat_Pxjg_Zyjnksbm b
       where b.gmsfhm = item_bay.gmsfhm
         and b.kszt = '2';
      if count_ksbm > 0 then
        --是否有不通过的记录存在
        OPEN cur_test FOR 'select b.* from(select b.* from Bat_Pxjg_Zyjnksbm b where b.kszt = ''2'' and b.gmsfhm = ''' || item_bay.gmsfhm || ''' order by b.cjsj desc) b where rownum = 1';
        loop
          --存在记录
          fetch cur_test
            into item_ksbm;
          exit when cur_test%notfound;
          update bat_bay_jb j
             set --j.zkzh = item_ksbm.j.scgajg = item_ksbm.
                 j.zkzh = v_zkzh,
                 j.bmrq = substr(item_ksbm.bmrq, 0, 8),
                 j.ksdd = item_ksbm.ksdd,
                 j.kssj = substr(item_ksbm.kssj, 0, 8),
                 j.kscj = item_ksbm.kscj
           where j.ryywbm = item_bay.ryywbm;
          commit;
        end loop;
      else
        select count(*)
          into count_ksbm
          from Bat_Pxjg_Zyjnksbm b
         where b.gmsfhm = item_bay.gmsfhm
           and b.kszt = '1';
        if count_ksbm > 0 then
          --是否有报名的信息
          OPEN cur_test FOR 'select b.* from(select b.* from Bat_Pxjg_Zyjnksbm b where b.kszt = ''1'' and b.gmsfhm = ''' || item_bay.gmsfhm || ''' order by b.cjsj desc) b where rownum = 1';
          loop
            --存在记录
            fetch cur_test
              into item_ksbm;
            exit when cur_test%notfound;
            update bat_bay_jb j
               set --j.zkzh = item_ksbm.j.scgajg = item_ksbm.
                   j.zkzh = v_zkzh,
                   j.bmrq = substr(item_ksbm.bmrq, 0, 8),
                   j.ksdd = item_ksbm.ksdd,
                   j.kssj = substr(item_ksbm.kssj, 0, 8),
                   j.kscj = item_ksbm.kscj
             where j.ryywbm = item_bay.ryywbm;
            commit;
          end loop;
        end if;
      end if;
    end if;
  
    fetch cur
      into item_bay;
  
  end loop;
  close cur;
  
Exception

  when others then
    insert into bat_bay_tb_err
      (id, gmsfhm, create_date, yxbz)
    values
      (bat_bay_tb_err_seq.nextval, item_bay.gmsfhm, sysdate, '1');
    update bat_bay_jb j
       set j.kstbbz = 2
     where j.gmsfhm = item_bay.gmsfhm
       and j.yxbz = '1';
    commit;
  
    close cur;
    bat_bay_jb_kstb2(); --递归

end bat_bay_jb_kstb2;



oracle存储过程变量名注意最好用"v_"符号开头,不然可能导致编译无法识别该变量名称(原因应该是和表中原来存在字段的名称相同),而将这个变量使用的地方滤去。
CREATE OR REPLACE PROCEDURE test_05_04_01(v_cust_id in number) IS

  a       number := 0;
  b number :=0;
  --cust_id number := 1000037;

begin

  SELECT count(*)
    into a
    FROM ins_prod_normal_prod pp
   WHERE pp.acct_id = v_cust_id;
  dbms_output.put_line(a);
  
  SELECT count(*)
    into a
    FROM ins_prod_normal_prod pp
   WHERE pp.acct_id = 1157766;
  dbms_output.put_line(a);
  
end;
分享到:
评论

相关推荐

    软件设计师考试同步辅导

    该考试分为上午和下午两个科目,涵盖了计算机科学与技术、软件工程、法律法规等多个方面。 本书的内容可能包括但不限于以下几个核心领域: 1. 计算机基础:这涉及到计算机硬件、操作系统原理、数据结构和算法等...

    软件设计师考试同步辅导下午科目

    该资源旨在帮助考生掌握考试的关键知识点,提高应试能力,确保在实际考试中能取得理想成绩。 软件设计师考试是全国计算机技术与软件专业技术资格(水平)考试中的一个重要组成部分,它主要考察考生在软件设计、开发...

    软件设计师考试同步辅导上午科目

    通过阅读《[大家网]软件设计师考试同步辅导上午科目[www.TopSage.com].pdf》和《计算机精品学习资料大放送.html》这两份资源,考生可以获取详细的复习材料,包括历年真题、模拟试题、重点难点解析等,帮助考生系统地...

    英语同步练习题考试题试卷教案上学期高一期末调研考试英语(附答案).pdf

    听力部分是英语考试的重要组成部分,占总分的30分,分为两个节。第一节共有5小题,每题1.5分,测试学生对日常对话的理解,包括细节理解。例如,题目询问Mary至少有多少条新裙子,以及John为什么不去聚会的原因等,...

    操作系统期末试卷与答案

    2、如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步 P操作在互斥 P操作前。而两个V操作的次序无关紧要 。 3、P(S):表示申请一个资源 ; V(S)表示释放一个...

    主题六相关分析与回归分析PPT学习教案.pptx

    相关关系可以分为正相关(两个变量值同步增减)、负相关(一个变量值增加时另一个减少)和零相关(变量值变化无特定规律)。相关程度通常用相关系数(r)来衡量,其数值范围在-1到+1之间,0表示完全无关,±1表示...

    实习题目一 学生成绩管理系统指导书.pdf

    - 插入或删除学生信息时,首先在学号哈希表中查找,然后更新其他两个哈希表和二叉排序树。 - 按姓名查找时,计算姓名的ASCII码并查找姓名哈希表,通过学号索引找到学号哈希表中的信息。 - 按班级操作时,查找班级...

    软件体系结构课程设计报告样本.doc

    我们使用Microsoft SQL Server作为数据库管理系统,设计了成绩表和题库表两个主要表格。成绩表用于存储学生的考试成绩信息,题库表用于存储考试题目信息。 5. 代码设计 代码设计是在线考试系统的另一个核心组件。...

    2021年护士执业资格考试变革分析.docx

    考试分为专业实务和实践能力两个科目,且需要在同一考试年度内通过两个科目的考试才能视为合格。其中,实践能力部分原则上采用“人机对话”的方式进行考试,这种方式更加考验考生的实际操作能力和应变能力。 ### ...

    基于springboot+vue的在线考试系统源码.zip

    4. 学生考试表:存储学生参加的考试记录,包括考试成绩、完成时间等。 四、业务逻辑实现 1. 用户模块:实现用户注册、登录、权限验证等功能。 2. 试题管理:支持教师上传、编辑、删除试题,以及对试题的分类和排序...

    江苏省连云港市赣榆县智贤中学高中英语 Unit2 Growing pains同步练习(一)牛津译林版必修1

    1. **听力理解**:这部分练习包括两个节,每节包含多段对话或独白,要求学生根据所听内容选择正确答案。这种练习旨在锻炼学生的即时理解和信息提取能力,同时检验他们在真实语境中理解英语口语的能力。例如,第一...

    考试猫考试系统,整合phpwind discuz论坛系统

    phpwind和discuz是两个广泛使用的开源论坛软件,它们提供了丰富的社区交流功能,如发帖、回帖、论坛板块管理等。通过整合,可以在论坛环境中嵌入考试系统,让用户在讨论学习问题的同时,可以直接参与在线测验,检验...

    vb计算机等级考试模拟系统

    该模拟系统的设计理念是仿真实际考试环境,通过双击桌面上的“准备使用等级考试模拟”和“闽高校计算机等级考试模拟”两个程序图标,用户即可进入模拟考试界面。这种方式模拟了实际考试中启动考试软件的过程,使考生...

    局域网考试系统

    6. **成绩统计**:系统自动生成考试成绩报表,便于教师分析学生表现和教学效果。 在学生端,系统为学生提供了以下功能: 1. **登录与确认**:学生通过用户名和密码登录考试系统,核对个人信息和考试科目。 2. **...

    学生成绩管理系统.rar

    同时,系统可能还支持批量导入或导出成绩,方便教师在不同平台间同步数据。 查询功能是系统为学生和家长提供的便利服务。学生可以登录系统查看自己的课程成绩,了解自己在班级中的排名,以及哪些科目需要改进。家长...

    2015高中数学 第1章 第8节 最小二乘估计同步练习(2)北师大版必修3

    在高中数学的课程中,它被用来找出两个或多个变量间最合适的线性关系,使得预测误差的平方和最小。这个概念在描述数据趋势、预测未来值以及分析变量间相互影响等方面具有重要意义。 在提供的练习中,通过给出的数据...

    新教材2020-2021学年高中数学第二册同步练习:10.1.2 事件的关系和运算 含解析.doc

    【知识点详解】 高中数学中的事件关系和运算是概率论的基础概念,主要研究的是不同事件之间的包含、排斥以及独立性等问题。...在实际考试中,这些概念和计算方法是解题的关键,掌握好这些知识点有助于提高考试成绩。

    初中语文知识点《基础知识及语言表达》《词语》同步试题【8】(含答案考点及解析)决战中考2021系列.docx

    而且..."引导的并列句中,两个分句应该具有相同的形式,此处不合事理,应改为"不仅张明知道这件事,而且全班同学都知道了"。 2. **选用、仿用、变换句式**:此题考察学生的语言表达能力,要求仿照例句构造新句子。...

    四年级数学下册第5单元三角形整理和复习同步练习新人教版

    在四年级数学下册的第五单元中,孩子们将学习到三角形的重要概念和性质,这是对之前学习内容的整理和复习。在这个阶段,学生需要...这不仅有助于他们在考试中取得好成绩,也为未来更复杂的几何学习打下了坚实的基础。

Global site tag (gtag.js) - Google Analytics