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 :

Suppression d'index oracle


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut Suppression d'index oracle
    salut,

    J'ai une table dans laquelle lorsque je fais un delete j'ai ceci

    SQL Error: ORA-01502: index 'a.pk_client' or partition of such index is in unusable state
    je me suis renseigné et il faut reconstruire les index donc je l'ai fait et j'ai cela

    SQL Error: ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found
    j'ai meme essayer un drop index et ça ne marche pas
    SQL Error: ORA-02429: cannot drop index used for enforcement of unique/primary key
    d'ou cela peut il provenir ?
    et comment pourrai je faire pour vider ma table sachant que je ne peux pas supprimer ma table car il y a des contraintes?

    Merci

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    ORA-01502: index 'string.string' or partition of such index is in unusable state
    Cause: An attempt has been made to access an index or index partition that has been marked unusable by a direct load or by a DDL operation
    Action: DROP the specified index, or REBUILD the specified index, or REBUILD the unusable index partition
    Visiblement si le REBUILD veut pas marcher, désactive les contraintes sur cette table, fait un truncate table et rebuild l'index.
    Puis réactive les contraintes

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 58
    Par défaut
    L'index spécifié a été marqué comme invalide par un chargement (Loading) direct
    Actions:
    Supprimer l'indexspécifié DROP
    ou fait un REBUILD pour l'index spécifié
    ou fait un REBUILD pour la partition concernée

    *******************
    cette erreur indique que dans CREATE UNIQUE INDEX une ou plusieurs colOnnes contient des valeurs dupliquées
    toutes les valeurs des colonnes indexées doivent avoir des valeurs non dupliquées par ligne

    action:
    elève le mot clé UNIQUE de CREATE INDEX et réexecute
    ou bien si vous voulez que UNIQUE INDEX reste (éliminer les valeurs dupliquées dans les colonnes)

  4. #4
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 46
    Par défaut
    Je rencontre le meme probleme : j'ai des doublons dans certaines partitions d'une table, du coup l'index unique est unusable sur ces partitions (apres rebuild).
    Ces doublons ont ete crees lors d'un Load .
    Je n'arrive a les supprimer car le delete me renvoie aussi l'erreur ORA-01502, car il essaie de mettre a jour l'index unique.
    La table comporte plus de 500 partitions et dropper/recreer líndex va etre super long.
    N'y a t il pas un moyen de faire un delete en ignorant l' index puis de faire un rebuild sur les partitions concernees ?

    Merci
    Isa

  5. #5
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 46
    Par défaut
    Le probleme principal venait du fait que dans chaque partition ayant des doublons, je devais garder une partie des donnees, donc un truncate de la partition n'etait pas possible.

    N'ayant pas trouvé de solution au niveau Oracle, j'ai fait ceci
    - creation d'une table ayant la meme structure (sans partition)
    - pour chaque partition
    -> copie des donnees a conserver dans cette table (sans les doublons)
    -> truncate partition
    -> recopie des donnees sauvegardees
    -> truncate table temporaire

Discussions similaires

  1. suppression d'index d'oracle
    Par miloon dans le forum SQL
    Réponses: 3
    Dernier message: 17/03/2009, 13h30
  2. index oracle comment faire
    Par nenekes dans le forum Administration
    Réponses: 3
    Dernier message: 16/05/2007, 16h36
  3. [DATE & Index] - Oracle 8.1.7.4
    Par jacquesh dans le forum Oracle
    Réponses: 2
    Dernier message: 30/10/2006, 09h22

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