oracle 过程中游标中取值和游标中逻辑直接取值不一样

Anongyem.Young 2018-11-22 11:37:02
代买如下:游标在过程中执行为44条数据,但把select拉出来直接运行有45条数据,确认后45条数据是正确的,请问下是什么原因,如何解决呢?

CURSOR Cur_Per_Info(v_Depart_Id IN Number) Is
Select asg.PERSON_ID
From Per_Assignments_F2 Asg,
Pay_Payroll_Actions Pac,
Pay_Assignment_Actions Aac
Where 1 = 1
And Pac.Payroll_Action_Id = Aac.Payroll_Action_Id
And Aac.Assignment_Id = Asg.Assignment_Id
And Asg.Payroll_Id = Pac.Payroll_Id
And p_period_name Between
To_Char(Asg.Effective_Start_Date, 'yyyy-mm') And
To_Char(Asg.Effective_End_Date, 'yyyy-mm')
And Pac.Action_Type = 'R'
And To_Char(Pac.Effective_Date, 'yyyy-mm') = p_period_name
And asg.ORGANIZATION_ID = v_Depart_Id
And Asg.Primary_Flag = 'Y'
And Pac.Payroll_Id = 61
Order By Aac.Payroll_Action_Id Asc, Aac.Assignment_Action_Id Asc;
...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaiger 2018-11-22
  • 打赏
  • 举报
回复
对照一下两边的结果,把遗失的那条记录找出来。
然后逐个条件筛选,检查是哪个条件过滤了该记录
卖水果的net 2018-11-22
  • 打赏
  • 举报
回复
把你少的那条拿出来看看。 大概问题应该出在 And asg.ORGANIZATION_ID = v_Depart_Id 这个条件上。 把 Per_Assignments_F2 的建表语句发上来。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧