过程描述:
某客户有套生产库从18迁移至19,理论上18到19只是个小版本变化,应该没啥问题,迁移完一周后,开发说某条sql跑不出来,并发出了语句。
拿到语句后就直接去执行了一下,发现确实不行。
报错如下:
select *
from table1 t
where t.cjrq = '20191130'
and t.deptid in (select cast(t4.org_id as varchar2(40)) from view_org_lvl t4);
from table2 t;
ERROR at line 2:
ORA-00604: error occurred at recursive SQL level 1
ORA-00910: specified length too long for its datatype
处理过程:
我对这个语句做了10046跟踪,看下走到哪一步报错了。
拿到10046直接搜索error,错误日志如下:
发现oracle创建可一张临时表,"INTERNAL_CYCLEKEY$" 字段为32767确实超出长度了,看到这有经验的工程师心里已经有答案了,就是oracle的bug应该是创建临时表的时候少处理了一步,接着去mos搜一下,结果很失望没搜到,那么开个sr问问?
开了sr我给了所有相关信息,很快确认为bug。
临时解决方法如下:
1. Hint /*+ NO_STAR_TRANSFORMATION */
2. Set "_with_subquery"=inline
相关bug信息如下:
文章转载自Vagrant Boy Awy,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
961次阅读
2025-03-17 11:33:53
Oracle DataGuard高可用性解决方案详解
孙莹
409次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
354次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
343次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
309次阅读
2025-04-01 11:08:44
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
287次阅读
2025-03-24 09:42:53
Oracle 19c RAC更换IP实战,运维必看!
szrsu
286次阅读
2025-04-08 23:57:08
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
281次阅读
2025-03-19 14:41:51
oracle定时任务常用攻略
virvle
280次阅读
2025-03-25 16:05:19
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
258次阅读
2025-03-19 23:43:22