oracle bom死循环语句,查找BOM中死循环及所有死循环路径

查找BOM 中死循环及所有死循环路径

在制造业中,普通使用BOM (Bill Of Material )来表示物料之间层次及结构关系。但是在实际作业中,可能对BOM 中料号维护错误。造成相应死循环,这对于后续计划及稽核都带来诸多问题。本文主要用SQL 语句来查找BOM 中存在死循环的料号及对应的所有路径。

71a57dc190784516bdc6479545b20081.png

b391b1b485bd424c2b1d19ebb51c7a16.png

f8a0cc4d661332fca58e24767d441e27.png

图1 BOM 结构

图1是示例的BOM 结构,其中相应的路径A ->B ->C->D->E->B ->F->A ,存在死循环料号A 和B 。在料号的BOM 结构在数据库中存储并不是这样,其部分料号存储结构如下。

表1 BOM 数据库存储结构

f022774f3ea9a7f456cc31d0a0228fd3.png

其实在BOM 的结构类似于树,此处我们定义:如果料号只在父料号栏中出现,而在子料号栏中不存在。其为根料号。如果料号只在子料号栏中出现,而在根料号栏中不存在。其为叶子料号。如果料号在父料号栏和子料号栏都存在,则其为中间节点。只有中间节点的料号才可能造成死循环。

我们可以根据中间节点逐级向上展BOM 来确认是否是死循环。通过引入如下结构,我们可以进行循环处理以找出死循环。

表3查找死循环结构(上层料号每次变化,是目标料号的祖先节点)

78df8162ed03c1ab147e64169cf7f6e2.png

b7e18dcc1831d9a9a36dbbb42d24b5e5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值