Oracle ORA-00600

时间:2009-02-04 14:19:07

标签: sql oracle plsql ora-00600

我有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 

EDIT2:

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

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

8 个答案:

答案 0 :(得分:5)

ORA-0600错误表示Oracle本身存在内部错误。你最有可能遇到Oracle漏洞。

如果你转到http://metalink.oracle.com,你可以通过将“参数”和完整堆栈跟踪粘贴到ORA-0600查找工具中来查找确切的错误(如果已知)。参见metalink note 153788.1。

如果该描述存在已知错误,则可能已有可供您下载和安装的补丁。如果它不是已知错误,请联系支持部门。

答案 1 :(得分:3)

完整查询是什么?

http://www.orafaq.com/wiki/ORA-00600建议您将错误报告给oracle。

答案 2 :(得分:2)

获得Oracle的支持祝你好运......

严重的是,每次遇到这个问题时,重新排列查询通常会有所帮助。也许稍微摆弄一下索引。

答案 3 :(得分:2)

ORA-00600基本上意味着你破坏了oracle服务器(不是实例,只是服务于你请求的服务器)。

您的bdump位置几乎总会有一个跟踪文件。这可能不会给你很多帮助,但对oracle支持非常有帮助。

这通常是由oracle bug引起的,根据经验,除了通过metalink提出SR之外,你可以做很多事情(这是Oracle推荐的解决方案)。他们会尝试复制这个问题,如果它有一个错误,它会最终找到补丁。

在短期内(例如,几天 - 几个月),主要的现实解决方案是解决它。

虽然提升SR并没有真正帮助你并且可能是令人沮丧的体验,但它值得做,因为一旦修复了bug,它可能会节省别人的时间。

答案 4 :(得分:1)

这些错误通常与优化程序有关。我认为即使是在FROM子句中切换table1和table2的顺序的最小变化也可能迫使优化器选择不会遇到此错误的其他计划。

答案 5 :(得分:0)

当使用PL / SQL Developer在表中有XMLTYPE列时,我看到过这样的错误。如果我让PL / SQL Developer为我创建查询框架就不会发生,因为它会为XMLTYPE列请求添加一些语法,我不记得到底是什么。

答案 6 :(得分:0)

我的解决方案:

(只是回到SO社区)我今天遇到了问题而且我无法按照上述步骤解决“启动我的实例”,经过几个小时的环顾四周后,我能够按照以下方式解决问题。

问题

enter image description here

这项工作失误[0600]

SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> recover database
Media recovery complete.
SQL> alter database open
  2
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[108], [615], [655], [], [], [], [], [], [], []`

这是我解决问题的方法:

    SQL> Startup mount
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown abort
ORACLE instance shut down.
SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> Show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      C:\APP\USER\ORADATA\ORACLEDB\C
                                                 ONTROL01.CTL, C:\APP\USER\FAST
                                                 _RECOVERY_AREA\ORACLEDB\CONTRO
                                                 L02.CTL
SQL> select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=
b.group# and b.status='CURRENT'
  2
SQL> select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=
b.group# and b.status='CURRENT';

MEMBER
--------------------------------------------------------------------------------

    GROUP# STATUS
---------- ----------------
C:\APP\USER\ORADATA\ORACLEDB\REDO03.LOG
         3 CURRENT


SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 4234808 generated at 01/21/2014 18:31:05 needed for thread 1
ORA-00289: suggestion :
C:\APP\USER\FAST_RECOVERY_AREA\ORACLEDB\ARCHIVELOG\2014_01_22\O1_MF_1_108_%U_.AR

C
ORA-00280: change 4234808 for thread 1 is in sequence #108


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
C:\APP\USER\ORADATA\ORACLEDB\REDO03.LOG
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.

最终工作:

enter image description here

答案 7 :(得分:0)

ORA-00600通常意味着非常意外的事情,并且可能与数据库损坏有关。症状可能是查询有效与否取决于查询的格式。

生活示例: