暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-08103: 对象不再存在

askTom 2018-10-17
1432

问题描述

嗨,克里斯/康纳,

您能否看一下下面的场景:
每当我们批量处理订单时,比方说一堆1000个订单,其中某些订单在MERGE语句中失败,并带有错误 “ORA-12801: 并行查询服务器P023中的错误信号”
ORA-08103: 对象不再存在 ”。

MERGE语句看起来像:
合并/* Q2 */ /* rowid(m) */进入smt_demo m
使用
(
选择/* Q1 */ /* 前导 (smt) */ DISTINCT
CAST(smt.rowid AS varchar2(128)) AS rid,
smt.zent_sk,
f.reg_id,f.来自smt_demo smt的cal_id,VW_FALL_ORDER f
哪里
smt.order_id = '1234'
和smt.order_oprn_typ IN ('U','I','D')
和 (smt.reg_id为NULL或smt.cal_id为NULL)
和smt.zent_sk = f.zent_sk
) target ON (m.rowid = CAST(target.rid AS urowid))
当匹配时,然后
更新集
m.reg_id = target.reg_id , m.cal_id = target.cal_id 哪里
m.订单id = '1234'
和m.order_oprn_typ IN ('U','I','D')
和m.zent_sk = 目标。zent_sk
和 (m.reg_id为NULL或m.cal_id为NULL)

关于上述声明中涉及的对象的详细信息:
表smt_demo: 是列表分区表,为每个orderid initally partitotion添加到表中。
查看VW_FALL_ORDER是同一数据库上其他scehma的范围分区表的视图,我们正在通过同义词使用它。

我已经验证了表的对象状态,并且视图中使用的表有效。
当我手动运行语句时,它会成功执行。
同样,在为失败的orderid重新运行相同的语句之后,此语句将被执行而没有任何问题。

您能否分享任何想法,并使用该线索可以分析此问题。

专家解答

我最近对此做了一段视频,可能会为您解释一些事情


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论