2009-02-04 3 views
2

J'ai SQL SELECT qui retourne:déclaration Oracle ORA-00600

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

Si je plisse les résultats en ajoutant une condition supplémentaire dans la clause où tout est ok.

Quelqu'un sait ce qui se passe?

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:

Ma DB solution proposée d'administration qui fonctionne:

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

Veuillez spécifier la version de la base de données, la plate-forme et le niveau de correctif. –

+0

Avait le même problème ici, mais a trouvé une solution de contournement pour accomplir ce dont j'avais besoin. http://stackoverflow.com/questions/8923091/ora-00600-when-running-alter-command –

Répondre

2

Bonne chance à obtenir le soutien d'Oracle ...

Sérieusement cependant, chaque fois que je frappe ce problème, réorganisant la requête un peu aide en général. Peut-être bidouiller un peu avec les index.

+3

En d'autres termes:" Je ne sais pas. C'est magique. Essayez de secouer le bâton vaudou dans l'autre sens. »Réorganiser la requête vous aidera jusqu'à ce que vous rencontriez le même problème, causé par un bogue dans Oracle et il y a probablement un correctif, sinon, vous devriez soumettre un rapport de bogue – Apocalisp

+0

@Apocalisp: Tout d'abord, je doute qu'il soit probable qu'il y ait un correctif - il y en a peut-être un.L'attendre un correctif peut prendre beaucoup de temps et si vous ne voulez pas retarder indéfiniment votre projet, vous devez arriver En d'autres termes: "Il a besoin d'une solution maintenant, pas dans 6 semaines" –

+0

Et d'ailleurs c'est exactement ce qui s'est passé dans ce cas - il n'y avait pas de solution, le DBA a suggéré une solution et cela a marché - tout le monde est content Le projet ne sera pas retardé, j'espère qu'Oracle lancera un correctif à un moment donné –

0

J'ai vu des erreurs comme ceci quand il y a des colonnes XMLTYPE dans la table, en utilisant PL/SQL Developer. Il ne se produirait pas si j'avais PL/SQL Developer créer le squelette de la requête pour moi, car il ajouterait de la syntaxe à la demande de colonne XMLTYPE, je ne me souviens pas exactement quoi.

+3

Aucun XMLTYPE n'est impliqué ici. J'ai vu ORA-00600 dans toutes sortes de circonstances différentes - c'est une erreur générique "fourre-tout" donc ce ne sera pas la même erreur, sauf si les arguments sont les mêmes et que vous êtes sur la même version de base de données/correctif . –

-1

Quelque chose here concernant un problème similaire - votre sélection utilise-t-elle des jointures?

+1

-1. ORA-00600 est une erreur fourre-tout générique quand quelque chose se passe mal en interne. Ce lien faisait référence à "[Oracle] [ODBC] [Ora] ORA-00600: code d'erreur interne, arguments: [qctcte1], [0], [], [], [], [], [], [] "Ce qui est totalement différent –

5

L'erreur ORA-0600 indique une erreur interne dans Oracle même. Vous frappez probablement un bug d'Oracle.

Si vous allez à http://metalink.oracle.com, vous pouvez rechercher le bogue exact, si vous le savez, en collant les "arguments" et la trace de la pile complète dans l'outil de recherche ORA-0600. Voir la note metalink 153788.1.

S'il existe un bogue connu avec cette description, il est probable qu'il existe déjà un correctif disponible pour le téléchargement et l'installation. Si ce n'est pas un bug connu, contactez le support.

1

Ces bogues sont généralement liés à l'optimiseur. Je pense que même le plus petit changement dans la requête comme le changement de l'ordre de table1 et table2 dans la clause FROM pourrait forcer l'optimiseur à choisir un autre plan qui ne rencontrera pas cette erreur.

2

ORA-00600 signifie essentiellement que vous avez planté le serveur Oracle (pas l'instance, juste le serveur de votre demande).

Il y aura presque toujours un fichier de trace dans votre emplacement bdump. Cela ne vous aidera probablement pas, mais sera très utile pour le support d'Oracle.

Ceci est généralement causé par un bogue Oracle, et par expérience, il n'y a pas grand-chose que vous pouvez faire à leur sujet, sauf augmenter un SR via Metalink (c'est la solution recommandée par Oracle). Ils vont essayer de reproduire le problème et avec un peu de chance, si c'est un bug, il finira par trouver son chemin dans un patch.

Dans l'immédiat cependant (par exemple, jours - mois) la solution réaliste principale est le travail autour de lui.Bien que le fait d'élever le SR ne vous aide pas vraiment et peut être une expérience frustrante, cela vaut la peine de le faire, car cela pourrait sauver du temps à quelqu'un d'autre une fois le bug corrigé.

+0

C'est la meilleure option, pour contourner le problème. –

0

Ma solution:

(juste redonner à la SO communauté) J'ai eu le problème aujourd'hui et je n'ai pas pu résoudre « à partir de mon exemple » en suivant les étapes ci-dessus, après les heures de regarder autour, j'ai pu pour le résoudre comme suit.

Problème

enter image description here

CE TRAVAIL N'A PAS ÉTÉ erreur est survenue lors [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], [], [], [], [], [], [], []` 

VOICI MA SOLUTION AU PROBLÈME:

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. 

ENFIN TRAVAILLE:

enter image description here