2009-02-04 6 views
2

У меня есть заявление SQL SELECT, которая возвращает:Oracle ORA-00600

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

Если я сузить свои результаты, добавив еще одно условие в ИНЕКЕ все в порядке.

Кто-нибудь знает, что происходит?

EDIT:

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:

Мой DB администратор предложил решение, которое работает:

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 
+0

Укажите, пожалуйста, версию базы данных, платформу и уровень исправления. –

+0

Имел такую ​​же проблему здесь, но нашел обходное решение, чтобы выполнить то, что мне было нужно. http://stackoverflow.com/questions/8923091/ora-00600-when-running-alter-command –

ответ

2

Удачи получать поддержку от Oracle ...

серьезно, каждый раз, когда я ударил эту проблему, переставив запрос немного обычно помогает. Возможно, немного поиграть с индексами.

+3

Другими словами:« Я не знаю. Это магия. Попробуйте встряхнуть ручку вуду другим способом ». Переупорядочение запроса помогает, пока вы снова не столкнетесь с той же проблемой. Это вызвано ошибкой в ​​Oracle и, вероятно, есть исправление. Если этого не произошло, вы должны представить отчет об ошибке. – Apocalisp

+0

@Apocalisp: Во-первых, я сомневаюсь, что существует вероятность, что есть исправление - может быть и одно. Ожидание исправления может занять довольно много времени, и если вы не хотите бесконечно задерживать проект, вам нужно подойти Другими словами: «Ему нужно решение сейчас, а не через 6 недель» –

+0

И, кстати, это именно то, что произошло в этом случае - не было никакого исправления, администратор баз данных предложил обходное решение, и это сработало - все счастливы , проект не задерживается, мы надеемся, что Oracle выпустит патч в какой-то момент. –

0

Я видел ошибки, подобные этому, когда в таблице есть столбцы XMLTYPE, используя PL/SQL Developer. Этого не произошло бы, если бы у меня был PL/SQL Developer для скелета запроса, потому что он добавит некоторый синтаксис в запрос столбца XMLTYPE, я точно не могу вспомнить.

+3

Здесь не задействован XMLTYPE. Я видел ORA-00600 в самых разных обстоятельствах - это общая ошибка «catch-all», поэтому это будет не та же ошибка, если только аргументы не совпадают, и вы используете одну и ту же версию базы данных/патч , –

-1

Что-то here относительно аналогичной проблемы - используется ли ваш выбор для использования?

+1

-1. ORA-00600 - это общая ошибка, когда что-то портится внутри. Эта ссылка ссылалась на «[Oracle] [ODBC] [Ora] ORA-00600: внутренний код ошибки, аргументы: [qctcte1], [0], [], [], [], [], [], [] », Что совершенно другое. –

5

Ошибка ORA-0600 указывает на внутреннюю ошибку в самом Oracle. Скорее всего, вы попадаете в ошибку Oracle.

Если вы перейдете к http://metalink.oracle.com, вы можете найти точную ошибку, если она известна, путем вставки «аргументов» и полной трассировки стека в инструмент поиска ORA-0600. См. Примечание к металлике 153788.1.

Если есть известная ошибка с этим описанием, вполне вероятно, что у вас уже есть патч для загрузки и установки. Если это не известная ошибка, обратитесь в службу поддержки.

1

Эти ошибки обычно связаны с оптимизатором. Я думаю, что даже самое маленькое изменение в запросе, такое как переключение порядка table1 и table2 в предложении FROM, может заставить оптимизатор выбрать другой план, который не столкнется с этой ошибкой.

2

ORA-00600 в основном означает, что вы столкнулись с сервером oracle (не экземпляр, а только сервер, обслуживающий ваш запрос).

В вашем местоположении bdump почти всегда будет файл трассировки. Вероятно, это не поможет вам, но будет очень полезно для поддержки оракула.

Это, как правило, вызвано ошибкой oracle, и из-за опыта вы не можете много сделать с ними, кроме как поднять SR через metalink (это рекомендуемое решение от Oracle). Они попытаются воспроизвести проблему и с какой-либо удачей, если ее ошибка в конечном итоге найдет свой путь в патч.

В ближайшем будущем (например, дни - месяцы) основное реалистичное решение - это работа вокруг него.

Подняв SR, вы действительно не можете помочь вам и можете быть разочаровывающим, его стоит делать, поскольку это может спасти кого-то еще, как только ошибка будет исправлена.

+0

Это лучший вариант для обхода. –

0

Мое решение:

(просто вернуть к SO сообщества) у меня была проблема сегодня, и я был не в состоянии решить «начиная свой экземпляр» после вышеуказанных шагов, после нескольких часов поисков я был в состоянии чтобы решить эту проблему.

Проблема

enter image description here

ЭТО Didnt РАБОТА БЫЛА ПОЛУЧЕНИЕ ОШИБКА [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

 Смежные вопросы

  • Нет связанных вопросов^_^