我有返回的SQL SELECT语句:

    Error: ORA-00600: internal error code, arguments: [qerpfAllocateR], [], [], [], [], [], [], []


如果通过在WHERE子句中再添加一个条件来缩小结果的范围,则一切正常。

有人知道发生了什么吗?

编辑:

    select * from ( select tbl1.col1, ..., tbl1.points
    from table1 tbl1, table2 tbl2
    where tbl1.tbl2FK = tbl2.PK and
          tbl2.col1 = someNumber and
          tbl1.dateColumn = to_date('27-10-2008','dd-mm-yyyy')
    order by tbl1.points desc ) s where rownum <= 3


编辑2:

我的数据库管理员建议了有效的解决方案:

select * from (select rank() over (order by tbl1.points desc) rank,
                  tbl1.col1, ..., tbl1.points
           from table1 tbl1, table2 tbl2
           where tbl1.tbl2FK = tbl2.PK and
                 tbl2.col1 = someNumber and
                 tbl1.dateColumn = to_date('27-10-2008','dd-mm-yyyy')) s
     where s.rank <= 3

最佳答案

祝您好运,得到Oracle的支持...

严重的是,每次我遇到这个问题时,通常对查询进行一些重新安排通常都会有所帮助。也许有点摆弄索引。

10-07 15:54