目的:从一组面试人员当中查出一个符合条件的(都可能符合,只要有一个符合就将那一个输出,查找结束)
目标表: 
1.面试信息表 testInfo 
字段: 面试编号 testId 面试内容编号 nrId 2.面试内容表 contInfo
字段 :面试内容编号 nrId,求职者编号,userId,面试技能编号 jnId,面试地点 didian,面试开始时间 kssj
        和面试结束时间 jssj两表通过nrId关联传入参数 1个是一组面试人员的id 和地点、日期、时间各自范围的参数,每个人的参数都不一定相同
         
     所以传入的是一个数组,可以拼串做1维数组 不拼串用2维 
                        如   1,'L.A.','3-9','18:00-20:00' (对应为面试人员编号、地点、日期简单点日期不管几月,时间段)
                             2,'L.V.','6-12','9:00-10:00'
     2是技能范围 如 1,2,3,4条件A这个求职者的面试内容 没有范围中技能
条件B求职者的面试内容的地点、日期、时间 符合其相应的参数
条件C面试表testInfo分了3张,10天一张,根据传入条件确定表,比如 3-9号 testInfo1,6-12号就要testInfo1和testInfo2只要有一个符合以上两个条件就可以返回他的面试记录编号testId和其他一些信息,但是这里并不重要,
意思是说,用java调用这个procedure返回那个面试人结果集。初学oracl,请各位高人指点迷津。

解决方案 »

  1.   

    技能范围打错了,是“有”范围中的技能,不是“没有”
    条件C 一月的记录分了3张表testInfo1,testInfo2,testInfo3 是如果是月中的3-9日 则为testInfo1
     如果是6-12日则要查testInfo1和testInfo2两张表
    返回面试编号testId和面试技能编号jnId这样
      

  2.   

    第一个传入的,可以用一个游标来读取,这样可以方便的进行判断
    第二个传入的,因为仅仅是一个取值范围,可以在程序中硬编码,也可以使用第二个临时表
    然后,读一个游标
    取到传入游标中这个面试人员的相关信息,
    根据传入游标中日期,来判断使用哪一张testInfo,  与contInfo表关联出来的结果比对,任何一个字段不符合则用一个变量标记本游标记录无效,并读取下一条游标记录
    否则,继续判断第一个条件(“有”范围中的技能),是否满足,若满足则输出这条记录的相关信息,并退出,
    否则,用一个变量标记本游标记录无效,并读取下一条游标记录
    重复上面的步骤