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

为什么这个sql在Oracle中导致内部错误?

ASKTOM 2018-11-28
406

问题描述

嗨!

我在12c上运行这个小SQL,也在11g上尝试过,并且两者都出现了内部错误。我不明白为什么。可能是一个错误,正如stackoverflow中的人所指出的那样,我最初询问的是:https://stackoverflow.com/questions/53527981/why-this-sql-causes-an-internal-error-in-oracle

select 
  sysdate c1,
  sysdate c2,
  row_number() over(order by sysdate, sysdate desc) c3
from dual 
order by c3


它的工作原理,如果我从row_number() 删除desc关键字。但是我可以保留desc并删除任何c1 e c2列,它也可以正常工作。尽管如此,我可以通过c3删除订单或将其设置为desc,然后它将再次起作用。无法理解为什么它不能正常工作。

谢谢。

专家解答

ORA-00600是一个错误,就这么简单。把它想象成你的应用程序中的核心转储-我们走了一条我们不打算这样做的代码路径。

SQL> select
  2    sysdate c1,
  3    sysdate c2,
  4    row_number() over(order by sysdate, sysdate desc) c3
  5  from dual
  6  order by c3;
  row_number() over(order by sysdate, sysdate desc) c3
                             *
ERROR at line 4:
ORA-00600: internal error code, arguments: [15851], [3], [2], [1], [1], [], [], [], [], [], [], []


在support.oracle.com上有许多15851的bug引用。因此,可能已经有一个补丁程序-您需要在支持下记录呼叫才能进行此操作。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论