IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Problème lors de la suppression d'un tablespace


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 36
    Par défaut Problème lors de la suppression d'un tablespace
    Bonjour,

    Mon problème est que je n'arrive pas à supprimer un tablespace.

    Voici l'erreur :

    ERREUR Ó la ligne 1 :
    ORA-00604: une erreur s'est produite au niveau SQL rÚcursif 1
    ORA-02429: impossible de supprimer un index utilisÚ pour la mise en application
    d'une clÚ primaire/unique

    Avec la commande : drop tablespace table1 including contents;

    Merci de vos retours

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    le message me parait clair, tu veux supprimer une tablespace contenant un index utilisé pour une clé primaire/unique !

    test case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> grant create table, unlimited tablespace to u identified by u;
    Grant succeeded.
    SQL> create tablespace tbs1 datafile '/u02/oradata/@/tbs1.dbf' size 2m;
    Tablespace created.
    SQL> create tablespace tbs2 datafile '/u02/oradata/@/tbs2.dbf' size 2m;
    Tablespace created.
    SQL> create table u.t(x number) tablespace tbs1;
    Table created.
    SQL>  create unique index u.i on u.t(x) tablespace tbs2;
    Index created.
    SQL> alter table u.t add primary key(x);
    Table altered.
    ora2429
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> drop tablespace tbs2 including contents and datafiles;
    drop tablespace tbs2 including contents and datafiles
    *
    ERROR at line 1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-02429: cannot drop index used for enforcement of unique/primary key
    identifier la violation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> SELECT owner, table_name, constraint_name
      FROM dba_constraints c
     WHERE EXISTS
              (SELECT *
                 FROM dba_tables t, dba_indexes i
                WHERE     t.table_name = i.table_name
                      AND t.owner = i.table_owner
                      AND c.index_owner = i.owner
                      AND c.index_name = i.index_name
                      AND i.tablespace_name = 'TBS2'
                      AND t.tablespace_name != 'TBS2');
     
    OWNER  TABLE_NAME CONSTRAINT_NAME
    ------ ---------- ------------------------------
    U      T          SYS_C0026466
    Désactiver la contrainte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL> alter table u.t disable constraint SYS_C0026466;
    Table altered.
    SQL> drop tablespace tbs2 including contents and datafiles;
    Tablespace dropped.

  3. #3
    Membre expérimenté

    Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2008
    Messages : 169
    Par défaut
    ce tablespace contient surement l'index de la contrainte et pas la table donc si tu veux le droper rebuild l'index sur un autre tablespace avant.
    C'était une pratique courante de mettre les index dans des tablespace séparé des tables pour facilement répartir les IO sur plusieurs disques avec les baies c'est devenu inutile.

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    bonne idée,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER INDEX U.I REBUILD TABLESPACE TBS1

    pour faire un rebuild de l'index (non partitionné)

Discussions similaires

  1. Problème lors de la suppression d'un champ d'une liste
    Par guintolli dans le forum SharePoint
    Réponses: 2
    Dernier message: 25/08/2008, 15h05
  2. Problème lors de la suppression d'un enregistrement
    Par Salamander24 dans le forum Modélisation
    Réponses: 3
    Dernier message: 15/03/2008, 15h30
  3. Problème lors de la suppression de feuilles
    Par Ploucouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2008, 12h59
  4. [ToolBar] Problème lors d'ajout/suppression de boutons
    Par joeln3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/09/2007, 15h21
  5. Problème lors de la suppression de lignes
    Par Tintou dans le forum Langage SQL
    Réponses: 7
    Dernier message: 04/07/2007, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo