我在运行一个程序时遇到了一个奇怪的问题。
Proc 如下所示:
procedure abc
IS
CURSOR xyz_cur IS
SELECT x
,y
,z
from temp
where y IN ('abc'.'pqr'.'def','sql','pqw')
for update nowait;
BEGIN
open xyz_cur ;
:
:
END abc;
现在早些时候游标查询没有'SQL','PQW'。我用这两个 varchar 值扩展了这个 IN 语句。并且表温度对 y 列有一个检查附件,我还扩展了检查属性。
现在我该如何解决我的问题,如果没有我最近添加的两个值,它就可以很好地工作。
我尝试过的,我已经分析了表格并重建了索引,但仍然没有运气.请帮助我
ORA-600表示"内部错误",至少在理论上,您永远不应该看到。
首先,我建议重新启动数据库。
如果之后问题仍然存在,我会联系 Oracle 支持部门。
Metalink提到了几个与SELECT相关的问题。对于导致ORA-00600 [13009]的更新,尽管似乎没有一个完全适合您的问题(您不使用10g或更早版本,并且您没有树查询) - 我建议联系Oracle支持。
您可以尝试的可能解决方法:
- 在游标定义中使用 UNION ALL(每个 y 值对应一个分支)
- 如果你有一组有限的 y 值:用 y 而不是 IN 反转你的逻辑......