ORA-01502 index or partition of such index is in unusable state
Publié le 27 Janvier 2010
Et oui deuxième article sur SQL*Loader et déjà premier problème.
Juste après avoir exécuter sqlldr comme je vous l'expliquais précédemment, je me retrouve avec une magnifique erreur ORA-01502 et plus possible d'effectuer un simple SELECT sur la table MOTS_CLES.
En fait la raison est simple (mais c'était pas si évident à trouver, si si):
Si vous avez remarqué je récupère que les 10 premiers caractères de chaque mot-clé qui se trouve dans le fichier texte. Et du coup il y a eu des doublons lors de l'insertion des données.
Et comme on utilise le mode direct (option direct=true) sqlldr écrit directement dans les fichiers de la base sans vérifier les contraintes comme l'unicité de la clé publique. Du coup quand il a fini et qu'il essaie de reconstruire l'index et ben boum!! c'est tout cassé!
Donc attention au doublons en mode direct!!
Ce problème est très bien expliquer ici: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch09.htm#1007759
Juste après avoir exécuter sqlldr comme je vous l'expliquais précédemment, je me retrouve avec une magnifique erreur ORA-01502 et plus possible d'effectuer un simple SELECT sur la table MOTS_CLES.
En fait la raison est simple (mais c'était pas si évident à trouver, si si):
Si vous avez remarqué je récupère que les 10 premiers caractères de chaque mot-clé qui se trouve dans le fichier texte. Et du coup il y a eu des doublons lors de l'insertion des données.
Et comme on utilise le mode direct (option direct=true) sqlldr écrit directement dans les fichiers de la base sans vérifier les contraintes comme l'unicité de la clé publique. Du coup quand il a fini et qu'il essaie de reconstruire l'index et ben boum!! c'est tout cassé!
Donc attention au doublons en mode direct!!
Ce problème est très bien expliquer ici: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch09.htm#1007759