oracle存储过程抽取数据
现在项目有个需求,做个简单的ETL,想用存储过程做。
两个表(还款明细)A表、(代扣明细)B表,从表A查询出几列数据更新到表B的某几列中(查询条件来自表B),目前还款明细(来自于B)里面只有应还款、没有实还款,银联代扣后会有一个返回,返回的数据每一行已经插入表A,现在要把返回来的扣款结果更新到还款明细中。请指点一下存储过程怎么写。
如果这种方式不够好,请问什么方式会比较符合现有业务?谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
就是当初他们在设计表时候的缺陷、导致现在两边不好对应上!
回复
其实这个与表设计的关系不太大,而是实际业务能不能反映出没一笔代扣所对应的还款记录,如果实际业务操作的过程中做不到的话,那就只能用最早余额核销的办法,如果实际业务操作中能反映出每笔代扣对应的还款,那就是就多一张表来记录对应关系。
这个过程应该是财务上的应收与收款的核销,有点繁琐,关键问题在于每笔代扣与还款是否有线索号够关联上,如果代扣与还款明细没有关联的话,那就只能根据最早余额的办法,把2张表的记录根据时间排序,然后进行勾兑,从代扣表的第一条记录开始,拿着代扣金额到还款明细里去勾兑,有余额的话直接取下一条,余额不足的话,再继续取代扣表的第二条记录,以此类推,直到把代扣表的金额核销完。
提升效率 的话,过程里面尽量不要使用 update 和游标, 使用 merge into
没那么简单
回复
那你把需求说的详细点吧
难道是我想复杂啦!汗
回复
那给分吧,hoho
update B set B.xxx = A.xxx where B.id = A.id
你说的需求用这条足够了