点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
问题说明
接到业务程序报错4016内部报错,select语句执行异常,进行重试后恢复正常。
具体报错信息如下 :

环境信息:
数据库版本:3.2.3.2
架构:X86
租户类型:Oracle
问题分析
2.1 手动ODC执行select同样报错

2.2 查询数据库日志
日志中有“invalid sys connect by path id(ret=-4016, sys_connect_by_path_id=0)”关键字。
2.3 查看各个表结构和视图信息
发现视图中有引用了函数concat(sys_connect_by_path ())。

2.4 查询此语句执行计划

计划中并未包括concat此函数的信息,正常执行计划如下:

问题处理
3.1 问题结论
OceanBase数据库3.2.3.2版本bug,视图中包含 concat(sys_connect_by_path ()),但是计划里面只是计算了sys_connect_by_path,没有带上concat。
3.2 问题解决
建议升级3.2.3最新版本。
暂时规避视图里面不用这个concat。
使用开发正常执行的执行计划进行绑定。

本文作者:刘一刀(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




