2010-11-19 37 views
0

i,Problème MView après l'avoir déposé

J'ai une vue Materialized sur un serveur qui est créée par DB Link. Il y a un travail en cours d'exécution sur ce Mview. (Craeted avec dbms_refresh.make plus tôt).

Maintenant j'ai mis 3 nouveaux champs dans la table d'origine.

Il y avait un travail en cours d'exécution sur le Mview, j'ai laissé tomber le travail par DBMS_refresh.destroy. ensuite laissé tomber le mview (j'ai oublié de supprimer des index sur la vue)

Maintenant, quand je suis en train de créer le mview avec SQL que je sxtracted avant, Il donne erreur: -

Erreur lors du démarrage à la ligne 1 commande:

CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT 
    TABLESPACE "TTSTAT_DATA" 
    LOGGING 
    PCTFREE 10 
    PCTUSED 40 
    INITRANS 1 
    MAXTRANS 255 
    STORAGE 
    (
    INITIAL 5M 
    NEXT 5M 
    MINEXTENTS 1 
    MAXEXTENTS 2147483645 
    PCTINCREASE 0 
    FREELISTS 1 
    FREELIST GROUPS 1 
    BUFFER_POOL DEFAULT 
) 
NOCACHE NOPARALLEL BUILD IMMEDIATE 
USING INDEX 
REFRESH ON DEMAND FAST 
WITH ROWID 
DISABLE QUERY REWRITE AS 
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917, 
     C536870918,C536870919,C536870920,C536870921,C536870922,C536870927, 
     C536870928,C536870929,C536870930,C536870931,C536870932,C536870933, 
     C536870937,C536870939,C536870940,C536870941,C536870942,C536870945, 
     C536870951,C536870952,C536870953,C536870954,C536870955,C536870956, 
     C536870957,C536870959,C536870961,C536870962,C536870965,C536871100 
    FROM [email protected] 

erreur à la ligne de commande: 1 Colonne: 0 rapport d'erreur:

SQL Error: ORA-00600: internal error code, arguments: [17113], [0x000000000], 
         [], [], [], [], [], [] 
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], 
       [%s], [%s], [%s], [%s]" 
*Cause: This is the generic internal error number for Oracle program 
      exceptions. This indicates that a process has encountered an 
      exceptional condition. 
*Action: Report as a bug - the first argument is the internal error number 

Erreur lors du démarrage à la ligne 26 en commande:

CREATE UNIQUE INDEX I_SNAP$_TTMU_LAVORAZIONE_T 
    ON TTMU_LAVORAZIONE_TT (M_ROW$$ ASC) 
    TABLESPACE "TTSTAT_DATA" 
    LOGGING 
    PCTFREE 10 
    INITRANS 2 
    MAXTRANS 255 
    STORAGE 
    (
    INITIAL 5M 
    NEXT 5M 
    MINEXTENTS 1 
    MAXEXTENTS 2147483645 
    PCTINCREASE 0 
    FREELISTS 1 
    FREELIST GROUPS 1 
    BUFFER_POOL DEFAULT 
) 

Erreur à la ligne de commande: 26 Colonne: 0 rapport d'erreur: erreur SQL: Connexion fermée

Répondre

3

l'action est assez clair:

*Action: Report as a bug - the first argument is the internal error number

Ceci est une erreur interne. Suivez les instructions de la note [ID 153788.1] Résolvez une erreur ORA-600 ou ORA-7445 à l'aide de l'outil de recherche d'erreur sur Oracle support site.

+0

+1 Les erreurs ORA-00600 ne sont * pas * normalement attendues – DCookie

0

Vous devez: - laisser tomber le cliché/mview - déposer le journal instantané sur la table principale - créer un nouveau journal instantané sur la table principale - recréer votre mview et simplifiez votre requête de création à ce qui suit:

CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT 
    TABLESPACE "TTSTAT_DATA" 
REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 5/1440 
WITH ROWID 
AS 
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917, 
     C536870918,C536870919,C536870920,C536870921,C536870922,C536870927, 
     C536870928,C536870929,C536870930,C536870931,C536870932,C536870933, 
     C536870937,C536870939,C536870940,C536870941,C536870942,C536870945, 
     C536870951,C536870952,C536870953,C536870954,C536870955,C536870956, 
     C536870957,C536870959,C536870961,C536870962,C536870965,C536871100 
    FROM [email protected]; 

Ce qui précède ajoutera un rafraîchissement dbms_job qui met la table à jour toutes les 5 minutes. Vous pouvez le changer pour répondre à vos besoins.

Une fois que vous créez vous devez exécuter:

exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'C'); 
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'F'); 

Cela devrait prendre soin d'elle. Vous devrez utiliser une autre méthode si la table est massive. Je ne connais pas la taille donc je suppose que pas trop grand.

0

Consultez le journal des alertes de la base de données pour savoir ce qui se passe dans votre base de données. Cela vous pointera probablement vers un ou plusieurs fichiers de trace où plus d'informations sur le problème peuvent être trouvées. Parfois, vous pouvez résoudre le problème par vous-même.