客户业务操作时出现报错,提示ORA-04061:existing state of type body WMSYS.WM_CONCAT_IMPL has been invalidated
在数据库中查询,发现函数状态是valid,并没问题

建立测试用户及测试数据测试该函数

并没问题
询问了一个大佬,他得出可能的原因:“连接池长连接挂着,相关对象被其他用户做了ddl,导致已有老连接中持有了老的信息,解决办法便是重置连接”
因业务无法使用,征询客户同意后赶快重启数据库,重启后恢复正常!
结论:
这类问题有三个解决方案:
1、重启应用连接池
2、重启数据库
3、换函数
考虑到以后说不定还会有对其他函数或者存储过程做ddl语句,重启的这个方法未免影响比较大,不知道还有没有其他更好的方案?或者说还是客户那边的程序存在某些不合理的地方?暂时无从得知
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




